问题
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)
回答1:
The targets
should be numeric values of the column number
datatable(test, options=list(columnDefs = list(list(visible=FALSE, targets=c(4))))) %>%
来源:https://stackoverflow.com/questions/36815622/how-to-hide-a-column-using-the-dt-package-columndefs-parameter-doesnt-work