【发布时间】:2019-03-23 10:40:59
【问题描述】:
我正在开发一个复杂的(对我而言)闪亮的应用程序,大约 2500 行代码。基本结构如下,虽然我不一定能分享一个可重现的例子,因为大部分信息都是机密的。
现在,我正在使用 df1 <- read.csv() 等来读取几个 CSV 文件作为数据框。我想使用reactiveFileReader() 使其在源 CSV 文件被修改时自动更新数据框。我认为我的问题可能与我没有在反应性上下文中执行此操作有关,但这是有原因的。我正在使用数据框df1 等来执行许多计算并在整个应用程序(UI 和服务器部分)中创建新变量。
还可能需要注意的是,我在 Shiny 应用程序的 UI 部分中执行这些文件导入,因为我需要依赖这些数据帧的因子级别来填充我的 UI 中的下拉 selectInput。这可能没有必要。
这是我尝试过的(虽然我很迷茫):
reader <- reactiveFileReader(intervalMillis = 1000, filePath =
"Data_Record.csv", readFunc = read.csv)
data_record <- reactive({
data_df <- reader()
return(data_df)
})
我期望data_record 是一个包含来自 CSV 的信息的数据框,但它最终成为一个“反应式表达式”。当我尝试对data_record 执行操作时,例如子集,我收到错误,因为该变量不是数据框。
我有什么方法可以在对反应式上下文之外的基础 CSV 进行修改时更新这些数据帧?即使是每 10 秒左右的预定更新也可以正常工作。 我的最终目标是在修改 CSV 时更新数据帧,但计划更新也可以。
提前感谢所有帮助,对于无法提供可重现的示例,我深表歉意!我会根据需要尝试添加更多信息。
【问题讨论】:
标签: r csv shiny reactive-programming