的对象列表说我有两个对象,a
和b
,和R中的函数f1
参考for循环
a<- 5
b<- 10
f1<-function(){
out<- a+b
return(out)
我想写一个for循环,评估此功能的灵敏度到a
和b
各改变它们,并再次运行函数的值。我想创建对象的载体中,然后运行一些像这样的代码:
params<- c(a,b)
for(i in params){
store<- i #save the initial value of the object so I can restore it later.
base<-f1() #save function output with original object value
i<- i*1.1 #increase object value by 10%
base.10<- f1() #recalculate and save function output with new object value
calc<- base.10/base #generate a response metric
i<- store #reset the object value to its original value
return(calc)
}
这将工作,但我真的想要在当前对象值的上下文中定义值的范围。我希望变量a和变量b增加10%>这是因为在我的实际函数中,我有很多不同的变量,它们的值的数量级差别很大,所以我无法为所有的变量指定一组公用的值他们承担。 – colin
@colin好吧,我已经更新了,当我传递给'sensitivity'函数来处理基值和10%以上的基值。 – josliber
这是如此接近。有没有办法给这个命令提供一个对象向量,而不是每次添加/删除参数都改变函数?我希望能够将此代码插入到我运行的其他模型中并将其播放,并为它提供一个我想估计其灵敏度的参数矢量,并且这些参数将始终设置为R对象。 – colin