Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不重新启动应用程序的情况下更新Shining server.R中的数据框_R_Shiny - Fatal编程技术网

在不重新启动应用程序的情况下更新Shining server.R中的数据框

在不重新启动应用程序的情况下更新Shining server.R中的数据框,r,shiny,R,Shiny,关于如何在不停止和重新启动应用程序的情况下更新shiny正在使用的数据帧,有什么想法吗 我尝试将加载(file=“my_data\u frame.RData”,envir=.GlobalEnv)放入一个被动函数中,但到目前为止没有成功。只有在应用程序停止后,数据框才会更新。如果您只是更新常规变量(在全局环境中或其他情况下),Shiny不知道如何对其做出反应。您需要使用reactiveValues对象来存储变量。您可以使用reactiveValues()创建一个,它的工作原理非常类似于环境或列表—

关于如何在不停止和重新启动应用程序的情况下更新shiny正在使用的数据帧,有什么想法吗


我尝试将
加载(file=“my_data\u frame.RData”,envir=.GlobalEnv)
放入一个被动函数中,但到目前为止没有成功。只有在应用程序停止后,数据框才会更新。

如果您只是更新常规变量(在全局环境中或其他情况下),Shiny不知道如何对其做出反应。您需要使用
reactiveValues
对象来存储变量。您可以使用
reactiveValues()
创建一个,它的工作原理非常类似于环境或列表——您可以按名称在其中存储对象。您可以使用
$foo
[['foo']]
语法来访问值

一旦反应函数从
reactiveValues
对象中读取一个值,如果该值在将来被另一个值覆盖,那么反应函数将知道它需要重新执行

下面是一个示例(由于您使用的是
load
而不是返回单个值的内容,如
read.table
,因此变得更加复杂):


值非常有用。非常感谢。get()的诀窍也很值得一提:)
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)
}