使用 DT 包隐藏响应数据 table 中的某些列
Hide certain columns in a responsive data table using DT package
我正在尝试使用 DT
包为我闪亮的应用程序创建响应数据 table。我想提前隐藏某些列。例如:
library("shiny")
library("DT")
shinyApp(
ui = fluidPage(DT::dataTableOutput('tbl')),
server = function(input, output) {
output$tbl = DT::renderDataTable(
iris,extensions="Responsive"
)
}
)
此输出为我提供了 5 列。它只在我缩小页面时隐藏列。但是,我想提前隐藏最后 3 列,我只想每次都看到前两列。有办法吗?
更新:
示例输出
您可以使用 DT 选项或扩展隐藏 table 中的列。
如果您希望它们提前隐藏但有一个按钮可以使它们再次可见,ColVis
扩展程序应该适合您:link
如果您只想隐藏它,请添加以下选项(不记得我现在在哪里看到它的文档了..)
options=list(columnDefs = list(list(visible=FALSE, targets=columns2hide)))
我有另一种方式,我喜欢它的可读性。虽然它没有解决列编号问题。
library("shiny")
library("DT")
library(magrittr)
columns2hide <- match('Sepal.Width', colnames(iris))
shinyApp(
ui = fluidPage(DT::dataTableOutput('tbl')),
server = function(input, output) {
output$tbl = DT::renderDataTable(
{
dataTableProxy(outputId = 'tbl') %>%
hideCols(hide = columns2hide)
iris
},
extensions="Responsive"
)
}
)
dataTableProxy
创建一个代理对象,您可以使用几个函数对其进行操作(请参阅 ?dataTableProxy
)。
例如,当单击按钮时,hiding/showing/selecting/add/... table 的行和列可能很方便。
因为默认情况下它有 deferUntilFlush = TRUE
它会等待 table 的处理直到它的下一代。在这种情况下,这只是发生在下一行。
我正在尝试使用 DT
包为我闪亮的应用程序创建响应数据 table。我想提前隐藏某些列。例如:
library("shiny")
library("DT")
shinyApp(
ui = fluidPage(DT::dataTableOutput('tbl')),
server = function(input, output) {
output$tbl = DT::renderDataTable(
iris,extensions="Responsive"
)
}
)
此输出为我提供了 5 列。它只在我缩小页面时隐藏列。但是,我想提前隐藏最后 3 列,我只想每次都看到前两列。有办法吗?
更新:
示例输出
您可以使用 DT 选项或扩展隐藏 table 中的列。
如果您希望它们提前隐藏但有一个按钮可以使它们再次可见,ColVis
扩展程序应该适合您:link
如果您只想隐藏它,请添加以下选项(不记得我现在在哪里看到它的文档了..)
options=list(columnDefs = list(list(visible=FALSE, targets=columns2hide)))
我有另一种方式,我喜欢它的可读性。虽然它没有解决列编号问题。
library("shiny")
library("DT")
library(magrittr)
columns2hide <- match('Sepal.Width', colnames(iris))
shinyApp(
ui = fluidPage(DT::dataTableOutput('tbl')),
server = function(input, output) {
output$tbl = DT::renderDataTable(
{
dataTableProxy(outputId = 'tbl') %>%
hideCols(hide = columns2hide)
iris
},
extensions="Responsive"
)
}
)
dataTableProxy
创建一个代理对象,您可以使用几个函数对其进行操作(请参阅 ?dataTableProxy
)。
例如,当单击按钮时,hiding/showing/selecting/add/... table 的行和列可能很方便。
因为默认情况下它有 deferUntilFlush = TRUE
它会等待 table 的处理直到它的下一代。在这种情况下,这只是发生在下一行。