2016-10-11 9 views
0

Shinyデータ型では、対応する表のセルをクリックして表の列を選択し、選択した列を強調表示します。しかし、列が多すぎる場合は、ボタンをクリックしてすべての列を選択して強調表示する方法はありますか?このようにして、対応するセルをクリックしていくつかの列の選択を解除することができます。Shinyデータ型を持つすべての列を選択


P.S.私の現在の解決策:私は、ユーザーが列を反転することができることを示すチェックボックスを作った。このチェックボックスをオンにすると、強調表示されている列は含まれずに選択されたセットから除外されます。

答えて

1

私はあなたを正しく理解していれば、これを行う方法になる可能性があります。

ui.R

library(shiny) 
    library(DT) 


    shinyUI(fluidPage(


     titlePanel("Column Selection"), 
     fluidRow(
       actionButton("selectCols", "Select all columns"), 
       DT::dataTableOutput('tbl'), 
       verbatimTextOutput("selectedColums") 
     ) 

    )) 

server.R

library(shiny) 
    library(DT) 

    shinyServer(function(input, output) { 


      irisTable <- reactive({ 
        if (input$selectCols > 0) { 
          datatable(iris, selection = list(target = 'column', selected = c(0,1,2,3,4,5))) 
        } else { 
          datatable(iris, selection = list(target = 'column')) 
        } 
      }) 

      output$tbl = DT::renderDataTable(
        irisTable()) 
      output$selectedColums <- renderPrint({ 
        input$tbl_columns_selected 
      }) 

    }) 
+0

感謝。私はこれがうまくいくと思います。しかし、私はまた、選択した列をハイライトしたいと思います。 Javascriptでいくつかの余分な作業が必要になるかもしれません。そのようにして、選択した列をクリックして選択を解除することもできます。 – athlonshi

+0

ボタンをクリックすると、すべての列が選択され、グレー表示されます。すべての列が選択されると、いずれかの列をクリックするとその列が選択解除されて白くなります。あなたは別の行動を望んでいた? –

+0

さて、私は今理解していると思います。はい、これは私が欲しいものです。再度、感謝します。 – athlonshi

関連する問題