当新文件添加到反应式 filePath 时,Shiny 中的 reactiveFileReader 不会更新
reactiveFileReader in Shiny will not update when new files are added to the reactive filePath
我在 R Shiny 应用程序中使用 reactiveFileReader 函数来读取和可视化实时记录的数据(1 秒数据)。数据文件存储在一个文件夹中,但每小时创建一个新文件。我正在使用一个反应文件路径,它应该在创建新文件并开始读取和绘制新文件中的数据时更新,但是,reactiveFileReader 似乎不会对 filePath 参数中的更改做出反应。该应用程序只是冻结在前一个文件的最后一个数据点,直到我刷新整个应用程序,此时新文件才可视化。
这是我用来读入数据的代码片段。
dir <- "/media/sf_D_DRIVE"
file_name <- reactive({paste0(dir, "/", list.files(dir)[length(list.files(dir))])})
df_1 <- reactiveFileReader(intervalMillis = 100, session = session , filePath = file_name, readFunc = read.csv)
我也试过将文件路径直接作为参数。
dir <- "/media/sf_D_DRIVE"
df_1 <- reactiveFileReader(intervalMillis = 100, session = session , filePath = paste0(dir, "/", list.files(dir)[length(list.files(dir))]), readFunc = read.csv)
有没有人想过如何让 filePath 响应式更新以及应用程序从添加到文件夹的新文件中读取和可视化数据而无需刷新?
不幸的是,提供可重现的示例具有挑战性,因为您需要示例的数据记录和文件创建端才能使其正常工作。希望有人还有一些想法!谢谢!
reactiveFileReader
基于 reactivePoll
。您可以使用 reactivePoll
来实现您想要的:
df_1 <- reactivePoll(
1000, session,
checkFunc = function(){
# this function returns the most recent modification time in the folder
files <- list.files(dir, full.names = TRUE)
info <- file.info(files)
max(info$mtime)
},
valueFunc = function(){
# this function returns the content of the most recent file in the folder
files <- list.files(dir, full.names = TRUE)
info <- file.info(files)
i <- which.max(info$mtime)
read.csv(files[i])
}
)
我在 R Shiny 应用程序中使用 reactiveFileReader 函数来读取和可视化实时记录的数据(1 秒数据)。数据文件存储在一个文件夹中,但每小时创建一个新文件。我正在使用一个反应文件路径,它应该在创建新文件并开始读取和绘制新文件中的数据时更新,但是,reactiveFileReader 似乎不会对 filePath 参数中的更改做出反应。该应用程序只是冻结在前一个文件的最后一个数据点,直到我刷新整个应用程序,此时新文件才可视化。
这是我用来读入数据的代码片段。
dir <- "/media/sf_D_DRIVE"
file_name <- reactive({paste0(dir, "/", list.files(dir)[length(list.files(dir))])})
df_1 <- reactiveFileReader(intervalMillis = 100, session = session , filePath = file_name, readFunc = read.csv)
我也试过将文件路径直接作为参数。
dir <- "/media/sf_D_DRIVE"
df_1 <- reactiveFileReader(intervalMillis = 100, session = session , filePath = paste0(dir, "/", list.files(dir)[length(list.files(dir))]), readFunc = read.csv)
有没有人想过如何让 filePath 响应式更新以及应用程序从添加到文件夹的新文件中读取和可视化数据而无需刷新?
不幸的是,提供可重现的示例具有挑战性,因为您需要示例的数据记录和文件创建端才能使其正常工作。希望有人还有一些想法!谢谢!
reactiveFileReader
基于 reactivePoll
。您可以使用 reactivePoll
来实现您想要的:
df_1 <- reactivePoll(
1000, session,
checkFunc = function(){
# this function returns the most recent modification time in the folder
files <- list.files(dir, full.names = TRUE)
info <- file.info(files)
max(info$mtime)
},
valueFunc = function(){
# this function returns the content of the most recent file in the folder
files <- list.files(dir, full.names = TRUE)
info <- file.info(files)
i <- which.max(info$mtime)
read.csv(files[i])
}
)