【发布时间】:2018-11-08 10:41:33
【问题描述】:
我正在尝试使用 R shiny 中的 renderTable 函数生成一个表,然后使用 downloadHandler 函数将该表/data.frame 下载为 csv 文件。不知何故,我不断收到以下错误:
下载过程中发生错误: 下载错误http://127:0:0.1:3001/session/ 0303bd426fce88837ae277aa3b406dd/download/downloadData?w= - 服务器 回复:内部服务器错误
下面是一个示例代码,我生成了一个简单的数据框并尝试使用 downloadHander 下载它:
library(shiny)
# Define UI for data download app ----
ui <- fluidPage(
# App title ----
titlePanel("Downloading Data"),
# Sidebar layout with input and output definitions ----
sidebarLayout(
# Sidebar panel for inputs ----
sidebarPanel(
# Button
downloadButton("downloadData", "Download")
),
# Main panel for displaying outputs ----
mainPanel(
tableOutput("table")
)
)
)
# Define server logic to display and download selected file ----
server <- function(input, output) {
# Table of selected dataset ----
output$table <- renderTable({
data.frame(a =c(1,2,3),b=c("q","s","f"))
})
# Downloadable csv of selected dataset ----
output$downloadData <- downloadHandler(
filename = function() {
paste("test.csv")
},
content = function(file) {
write.csv(output$table, file, row.names = FALSE)
}
)
}
shinyApp(ui,server)
【问题讨论】:
-
renderTable()为 UI 准备输出。我想你想要的是创建一个reactive()可以被renderTable和downloadHandler调用的数据框。