这是this的后续问题
现在,我设法将React Dataframe 下载到我的硬盘驱动器(!不是服务器或工作目录),并将每个新条目作为新行附加write.table
。
有趣的是,write.csv
不起作用,因为它不允许append
参数https://stat.ethz.ch/pipermail/r-help/2016-August/441011.html。
有了这个最小的工作应用程序,我想知道如何让用户选择一个目录和一个文件名下载到那里。现在我有了这个绝对路径:file = "C:/Users/yourname/Downloads/my_df.csv"
,这是工作。但我不知道它是否会为其他用户工作!
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(width = 4,
sliderInput("a", "A", min = 0, max = 3, value = 0, width = "250px"),
actionButton("submit", "Submit")
),
mainPanel(
titlePanel("Sliders"),
tableOutput("values")
)
)
)
server <- function(input, output, session) {
sliderValues <- reactive({
data.frame(Name = c("A"), Value = as.character(c(input$a)), stringsAsFactors = FALSE)
})
output$values <- renderTable({
sliderValues()
})
# Save the values to a CSV file on the hard disk ----
saveData <- reactive({write.table(sliderValues(), file = "C:/Users/yourname/Downloads/my_df.csv", col.names=!file.exists("C:/Users/yourname/Downloads/my_df.csv"), append = TRUE) })
observeEvent(input$submit, {
saveData()
})
}
shinyApp(ui, server)
要求是用户应该看到一个模式对话框ui与问题“在哪个文件夹与哪个文件名你想下载?”准像我们每天做的事情,如果我们从互联网上下载。
1条答案
按热度按时间q8l4jmvw1#
我现在这样解决它:
我意识到我有两个选择:
1.根据@Stéphane Laurent使用
downloadhandler
的建议1.使用
DT::datatable()
我已经决定使用2号。非常感谢你们所有的投入!