How to hide a column using the DT package - column

2019-02-23 04:12发布

I would like to hide a column (col4 in example below) in a dataframe using the DT package.

I've incorporated the code snippet found here, to no avail - col4 still shows. Here is my sessionInfo, along with my reproducible example.

> 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)

标签: shiny dt
1条回答
乱世女痞
2楼-- · 2019-02-23 04:33

The targets should be numeric values of the column number

datatable(test, options=list(columnDefs = list(list(visible=FALSE, targets=c(4))))) %>%
查看更多
登录 后发表回答