在闪亮的循环中读取相同的数据帧

时间:2018-08-02 14:03:39

标签: r shiny

我是Shiny的新手。假设我有一个需要循环运行的函数。它需要两个输入,一个更改,另一个是数据框不变。具体来说,我将编写一个简化的函数和输入。

vec1 = rnorm(100)
vec2 = rnorm(100)


input = data.frame(vec1,vec2)


trial1 = function(input,b){
  vec1 = input$vec1
  return(vec1 + b)
}


trial2 = function(n,input){
d = rep(0,n)
for(i in 1:n){
b = rnorm(100)
d[i] = b + trial1(input = input, b = b) 
}
return(mean(d))
}

在此代码中,循环中重复读取输入数据帧,从而使代码变慢。可以使用闪亮的反应性来使vec1仅从输入中读取一次,因为每个循环中的输入都保持不变吗?是否使试用1反应式完成工作(以及“输入”作为输入或其他反应式功能/值进入)?

1 个答案:

答案 0 :(得分:0)

通常对于R-Shiny应用程序,大多数反应都在服务器功能内

server <- function(input, output) {
   # your reactive components
}

您始终可以创建一个在此闪亮的服务器函数之外初始化的全局变量

vec1 <<-#在您的数据框中读取

并在服务器块中访问它,因此您只需阅读一次