在没有重新启动应用程序的情况下更新闪亮的server.R中的数据框

use*_*178 12 r shiny

有关如何在不停止和重新启动应用程序的情况下更新闪亮使用的数据框架的任何想法?

我试过把一个load(file = "my_data_frame.RData", envir = .GlobalEnv)内部反应功能,但到目前为止没有运气.在应用程序停止之前,数据框不会更新.

Joe*_*eng 21

如果你只是更新常规变量(在全局环境中,或者其他),Shiny不知道对它们做出反应.您需要使用reactiveValues对象来存储变量.您使用reactiveValues()它创建一个,它的工作方式与环境或列表非常相似 - 您可以在其中按名称存储对象.您可以使用任一语法$foo[['foo']]语法来访问值.

一旦反应函数从reactiveValues对象读取值,如果该值在将来被不同的值覆盖,则反应函数将知道它需要重新执行.

这是一个例子(由于你正在使用load而不是返回单个值的东西而变得更复杂read.table),例如:

values <- reactiveValues()
updateData <- function() {
  vars <- load(file = "my_data_frame.RData", envir = .GlobalEnv)
  for (var in vars)
    values[[var]] <- get(var, .GlobalEnv)
}
updateData()  # also call updateData() whenever you want to reload the data

output$foo <- reactivePlot(function() {
  # Assuming the .RData file contains a variable named mydata
  plot(values$mydata)
}
Run Code Online (Sandbox Code Playgroud)

我们应该很快就会有更好的文档.感谢在此期间与我们合作.