gpt4 book ai didi

R DT打包按钮下载文件不包含显示表

转载 作者:行者123 更新时间:2023-12-04 09:21:36 25 4
gpt4 key购买 nike

这是一个简单的例子。
假设我正在查看表格,并且我想下载不包括 Sepal.Length 列的表格。

我该怎么办?我尝试切换 Sepal.Length 列,然后单击 excel,但它仍然为我提供了整个数据。我不要。有什么办法可以操纵它吗?

也许我不熟悉它在后端如何操作,在我使用行重新排序扩展或搜索/过滤表之后,那么下载的文件就是表显示的内容。所以当我隐藏列时我想要类似的东西。

当表中有太多列并且有时我不需要所有列时,这很有用。

library(shiny)
shinyApp(
ui = fluidPage(DT::dataTableOutput('tbl')),
server = function(input, output) {
output$tbl = DT::renderDataTable(
iris, extensions = "Buttons",
options = list(dom = "Blfrtip",
buttons = list('copy', 'excel', 'print', 'colvis'))
)
}
)

我真的很感谢你的帮助。

最佳答案

您可以使用 input$tbl_columns_selectedinput$tbl_rows_selected
在这里您可以选择行和列( 注意:要选择列,请单击 DT 下方的标签)
如果您只想在列上进行选择,请删除 input$tbl_rows_selected并设置 target = 'column'只要

library(shiny)
library(xlsx)
library(DT)

shinyApp(
ui = fluidPage(
DT::dataTableOutput('tbl')
,downloadButton("downloadData",label ="Download")
),

server = function(input, output) {
output$tbl = DT::renderDataTable(iris, selection = list(target = 'row+column'))

myFilteredData <- reactive({
df <- iris[input$tbl_rows_selected, input$tbl_columns_selected]
if (length(input$tbl_columns_selected) == 1) {
df <- as.data.frame(df)
colnames(df) <- colnames(iris)[input$tbl_columns_selected]
}
df
})

output$downloadData <- downloadHandler(
filename = function() {paste("test.xlsx")},
content = function(file) {
write.xlsx(myFilteredData(),file, row.names=FALSE)
})
}
)

关于R DT打包按钮下载文件不包含显示表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46838748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com