【发布时间】:2018-08-02 22:32:35
【问题描述】:
我是 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,因为输入在每个循环中都不变?让 trial1 反应式完成这项工作(并且“输入”作为输入或另一个反应性函数/值进入)?
【问题讨论】: