我是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反应式完成工作(以及“输入”作为输入或其他反应式功能/值进入)?
答案 0 :(得分:0)
通常对于R-Shiny应用程序,大多数反应都在服务器功能内
server <- function(input, output) {
# your reactive components
}
您始终可以创建一个在此闪亮的服务器函数之外初始化的全局变量
vec1 <<-#在您的数据框中读取
并在服务器块中访问它,因此您只需阅读一次