我想使用DT包在数据框中隐藏一列(在下面的示例中为col4)。

我已经合并了here找到的代码片段,但无济于事-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)

最佳答案

targets应该是列号的数值

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

关于shiny - 如何使用DT包隐藏列-columnDefs参数不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36815622/

10-12 22:16