将数据写入和覆盖文件(.csv)

阿多马布

是否可以在不下载的情况下将数据写入.csv?有一个downloadButton和downloadHandler,但是他们先写数据然后下载。

如果第一件事是可能的,是否有可能将数据写入csv并覆盖。例如,我有一个带值的.csv文件,我想更改该csv中的值,只是覆盖它们。

我的想法是,我想在启动时加载的.csv中存储一些值。即使用户想要更改其中一些并保存以供下次使用,因此我需要更改它们。下次加载更改后的值。

阿多马布

主意

问题是我希望允许用户选择某些选项,而闪亮的应用程序应该记住下一个应用程序上的选项会启动。首先,我的想法只是在启动app:时创建一个空变量savedItems<-NULL在托管应用程序的所有时间中,我都会添加类似这样的项目savedItems<<-c(savedItems,'a1','a3','a5')但是,有时我将在其上托管的服务器将重新启动,因此savedItems将再次初始化为空向量。因此,我决定更新自己的想法,并将值不保存在矢量中,而是保存在文件中。

更新的想法和解决方案

首先,我初始化了一个空的.csv文件,例如upload.csv,我要存储数据的位置。我想在每次启动应用程序(而不是主机)时都读取此文件,因此,首先我只读取了.csv,它将仅将列向量保存在文件中:

shinyServer(function(input, output, session) { uselessRead <- read.table("upload.csv",header=FALSE) useless <<- as.vector(uselessRead[,1]) ...

然后,使用selectInput我选择一些项目并将其添加到我的vector中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) }) })

这将写入(并覆盖内部的所有内容)分配给uselessvector的所有内容。

在下次启动时,我的应用程序将首先读取,upload.csv因此应用程序应选择哪些值,而用户不必每次都这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章