我有一个 RStudio Shiny 应用程序,它将用户数据保存在托管我的 shiny 应用程序的子目录中。 存储
数据和访问
数据的最佳方式是什么?
代码的相关部分是这样的:
# Save all answers after click on "submit"
observe({
if(is.null(input$submit) || input$submit == 0) {return()}
filename <- paste0("/data/answers-",input$userName, "-", as.numeric(Sys.time()), ".RData")
save(values$A, file = filename, compress = "xz")
})
应用程序运行:数据成功保存在服务器上的数据子目录中。
编辑:我将数据保存为 .RData,假设这是一种自然的方法。如果我将数据保存为 .csv,它看起来像这样:
"What do you think about this?","Excellent","Excellent"
"What do you think about that?","Excellent","Excellent"
"User Unique ID","ABC123","DEF456"
只是多了行多了列。
一种方法是定期从服务器下载数据,如果超过临界大小(以防止占用过多空间),则在服务器上将其删除。如何最好地做到这一点?
欢迎提供有关数据库管理的任何提示。
我从 shiny-discuss 交叉发帖,我的问题还没有引起任何反应:
https://groups.google.com/forum/#!topic/shiny-discuss/gOEtUsh00Qs
最佳答案
对不起。评论有太多字符,这是一个更大的框。如果您想将数据附加到文件(例如,csv),这将按照我提供的链接中的每行发生。所以你应该在发送到文件之前 t() 你的数据。要让脚本以固定的时间间隔运行,请搜索 R 和 Cron(适用于 mac 和/或 linux)。使用 invalidatelater 在 Shiny 的应用程序中执行此操作可能会更容易.例如,设置一个每小时运行一次的观察者。如果文件大于 X(使用 file.info("myfile.csv")$size)然后做一些事情(例如,如果您的服务器上安装了保管箱,请使用 file.copy 将其移动到您的保管箱帐户。或电子邮件它。我没有使用 R 的电子邮件,但 this 看起来很有前途。
总而言之:尝试一些东西,如果遇到困难请告诉我们 :)
关于database - R Shiny 的数据库管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21718639/