我正在努力使我的头脑在以下方面。试图更深入地了解R-shiny的工作原理。
在创建下载按钮时,R Shiny建议使用以下代码片段:
output$downloadData <- downloadHandler(
filename = function() {
paste('data-', Sys.Date(), '.csv', sep='')
},
content = function(con) {
write.csv(data, con)
}
)
使用名为:filename的函数创建文件名。并且,使用创建的名为内容的函数编写内容。
内容功能将con作为输入。以我的理解,这只是在内容函数内部设置了write.csv函数的filename / filepath参数。
为什么文件名(函数)不用作输入参数,为什么还要在conent函数/ write.csv中设置文件名/文件路径参数的路径?
答案 0 :(得分:1)
实际上,downloadHandler
的当前文档在示例中使用了以下内容
content = function(file) {
write.csv(data, file)
}
content
参数的文档中还提到了文件路径,而不是连接
内容
该函数采用单个参数文件,该参数文件是不存在的临时文件的文件路径(字符串),并将内容写入该文件路径。 (可以从此功能中使用反应性值和功能。)
filename
和content
都是函数的原因是,它们都可以根据应用程序当前所处的状态进行更改。如果希望内容取决于用户的输入,则可以用于示例。
content = function(file) {
write.csv(get_current_data(input$choose_dataset), file)
}
filename
filename = function() { paste0(input$choose_dataset, ".csv") }