我正在创建一个Shiny应用程序,我想将我的结果下载到zip存档中。之前,它对我有用,因为我使用的是Rx34位。不幸的是,由于我使用了Rx64bits,因此无法正常工作。 我发现了一些不适合我的例子:
Get_Y
错误如下:
library(shiny)
ui <- shinyUI(fluidPage(
titlePanel("Old Faithful Geyser Data"),
sidebarLayout(
sidebarPanel(
downloadButton("downloadData", "Download")
),
mainPanel(
DT::dataTableOutput('myTable1')
)
)
))
server <- shinyServer(function(input, output) {
output$myTable1 <- DT::renderDataTable(iris)
output$downloadData <- downloadHandler(
filename = function() {
paste0("output", ".zip")
},
content = function(file) {
k <- input$myTable1_rows_selected
fs <- c()
for (i in k) {
path <- paste0(i, ".docx")
rmarkdown::render("test.rmd", rmarkdown::word_document(), output_file = path)
fs <- c(fs, path)
}
zip(file, fs)
},
contentType = "application/zip"
)
})
shinyApp(ui = ui, server = server)
我在Windows 7中使用R64bits。谢谢
答案 0 :(得分:0)
如果选择了0行,则对zip的调用将失败,因为files
参数fs
为NULL。
显然,这取决于你想要做什么,但快速而肮脏的黑客是明确地创建一个空文件并将其放在输出zip中。
if (is.null(k)) {
file.create('empty')
zip(file, 'empty')
} else {
zip(file, fs)
}