2016-07-31 3 views
0

これは、列(列3)を選択し、特定の方法で100を超える値を強調表示し、特定の方法で200を超える値を強調表示する方法を示す例です。renderDataTableの色選択​​済みの行

library("shiny") 
library("shinydashboard") 
library("datasets") 
library("DT") 

header <- dashboardHeader() 

sidebar <- dashboardSidebar() 

body <- dashboardBody(
    DT::dataTableOutput("mtcarsTable") 
) 

shinyApp(
    ui = dashboardPage(header, sidebar, body), 
    server = function(input, output) { 

    output$mtcarsTable <- renderDataTable({ 
     DT::datatable(datasets::mtcars, 
        options = list(rowCallback = JS(' 
                function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
                // Bold and green cells for conditions 
                if (parseFloat(aData[3]) >= 200) 
                $("td:eq(3)", nRow).css("font-weight", "bold"); 
                if (parseFloat(aData[3]) >= 100) 
                $("td:eq(3)", nRow).css("background-color", "#9BF59B"); 
                }') 
        ) 
        ) 
    }) 
    } 
        ) 

私はちょうど列ではなく列を選択する方法を探しています。たとえば、行3、9、11、13を選択し、これらの行を黄色に色分けします。これを達成するために上のコードをどのように変更するかについての助けがあれば、大歓迎です。前もって感謝します。

+0

をaData'がデータフレームである 'のように見えます。 'aData [c(3,9,11,13)、]'を参照できない理由はありますか? – Warner

+0

@Warner、あなたは正しい 'aData'はデータフレームです、私はあなたが提案したことをしました、私は出力を見ていないか、私はエラーが表示されなかった、私は次の行を変更する必要があると思う' $ "td:eq(3)"、nRow)..... "しかし、どうしたらいいのか? – Science11

+0

@ Science11、私の例を見てくださいhttp://stackoverflow.com/questions/38565033/use-backgroundcolor-in-dt-package-to-change-a-complete-row-instead-of-a-single- v/38565223#38565223 –

答えて

0

ない、これはあなたが探しているが、以下のコードは、「DISP」の値(ADATAは、[3])の列が200

'function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
if (parseFloat(aData[3]) >= 200) 
$(nRow).css("background-color", "#ffff00"); 
}' 
以上である黄色のすべての行にハイライト表示されます何であるかどうかわから

rowCallback部分に挿入するだけです。列番号削除する

また、

編集してコード:

$("td", nRow).css("background-color", "#9BF59B"); 
関連する問題