Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to hide a column using the DT package - columnDefs parameter doesn't work

Tags:

dt

shiny

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)
like image 429
matsuo_basho Avatar asked Apr 23 '16 19:04

matsuo_basho


People also ask

How do I hide columns in R studio?

The cols_hide() function allows us to hide one or more columns from appearing in the final output table.

How hide Datatable column based on condition?

To hide and show columns use columns() and visible() method. Call it on dataTables instance and pass column index in columns() method and false to visible() method.


1 Answers

The targets should be numeric values of the column number

datatable(test, options=list(columnDefs = list(list(visible=FALSE, targets=c(4))))) %>%
like image 139
Xiongbing Jin Avatar answered Sep 27 '22 21:09

Xiongbing Jin