web-dev-qa-db-ja.com

DTパッケージを使用して列を非表示にする方法-columnDefsパラメーターが機能しない

DTパッケージを使用して、データフレーム内の列(以下の例ではcol4)を非表示にしたいと思います。

見つかったコードスニペットを組み込んだ ここ 、役に​​立たない-col4はまだ表示されます。これが私のsessionInfoと私の再現可能な例です。

> sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils    
[5] datasets  methods   base     

other attached packages:
[1] DT_0.1.55    shiny_0.13.1

loaded via a namespace (and not attached):
 [1] htmlwidgets_0.6 magrittr_1.5   
 [3] R6_2.1.2        htmltools_0.3.5
 [5] tools_3.2.3     yaml_2.1.13    
 [7] Rcpp_0.12.4     jsonlite_0.9.19
 [9] digest_0.6.9    xtable_1.8-2   
[11] httpuv_1.3.3    mime_0.4 


library(shiny)
library(DT)

ui <- fluidPage(
                dataTableOutput("testtable")
                ) #close fluidpage


server <- function(input, output, session){

  output$testtable <- DT::renderDataTable({  
                                          test <- data.frame(a = runif(10), b = runif(10), c = runif(10), 
                                                             col4 = c('a', 'b', 'b', 'a', 'c', 'b', 'c', 'b', 'b', 'a'))
                                          datatable(test, options=list(columnDefs = list(list(visible=FALSE, targets='col4')))) %>%
                                            formatStyle(columns = 1, valueColumns = 'col4', 
                                                        backgroundColor = styleEqual('a', 'green')
                                                        ) %>% #close formatstyle
                                            formatStyle(columns = 2, valueColumns = 'col4', 
                                                        backgroundColor = styleEqual('b', 'green')
                                                        ) %>% #close formatstyle
                                            formatStyle(columns = 3, valueColumns = 'col4', 
                                                        backgroundColor = styleEqual('c', 'green')
                                                        ) #close formatstyle
                                          }) #close renderDataTable

                                          } # closer server

shinyApp(ui=ui, server=server)
10
matsuo_basho

targetsは列番号の数値である必要があります

datatable(test, options=list(columnDefs = list(list(visible=FALSE, targets=c(4))))) %>%
22
Xiongbing Jin