是否可以将数据写入.csv而无需下载?有一个downloadButton和downloadHandler,但是他们会写入数据然后下载它。
如果可以做到第一件事,是否可以将数据写入csv并覆盖。例如,我有一个带有值的.csv文件,我想更改csv中的值只是覆盖它们。
我的想法是,我想在启动时加载的.csv中存储一些值。即使用户想要更改其中一些并保存下次,因此我需要更改它们。下次加载更改后的值。
谢谢,
亚当
答案 0 :(得分:1)
<强>观强>
问题是我希望允许用户选择一些选项,闪亮的应用程序应该记住下一个应用程序启动时的选项。首先,我的想法是在app savedItems<-NULL
的启动时创建空变量。应用程序托管的所有时间,我都会添加这样的项目savedItems<<-c(savedItems,'a1','a3','a5')
。但是,有时我将托管的服务器将重新启动,因此savedItems
将再次初始化为空向量。因此,我决定更新我的想法并保存值不在矢量中,而是保存在文件中。
更新了理念&amp;溶液强>
首先,我初始化了空的.csv文件,例如upload.csv
,我想存储数据。我想在每次启动应用程序(而不是主机)时读取此文件,因此首先我只读取我的.csv,它只会在文件中保存列向量:
shinyServer(function(input, output, session) {
uselessRead <- read.table("upload.csv",header=FALSE)
useless <<- as.vector(uselessRead[,1])
...
然后,使用selectInput
我选择一些项目并将其添加到我的向量useless
。我点击actionButton("addUseless",...)
后执行此操作:
observe({
if (input$addUseless == 0)
return ()
}
isolate({
useless<<-input$uselessItems # from selectInput("uselessItems",...)
})
})
在此之后,我的矢量被新选择的值覆盖(如果已填充)。所以,我希望这些值显示在我的upload.csv
中。所以我点击actionButton("upload",...)
后执行此操作:
observe({
if (input$upload == 0) {
return ()
}
isolate ({
write.table(useless,"upload.csv",
col.names=FALSE,row.names=FALSE)
})
})
这将写入(并覆盖内部的所有内容)所有内容,分配给useless
向量的内容。
在下次启动时,我的应用程序将首先阅读upload.csv
所以应用程序应选择哪些值,用户不必每次都这样做。