Скажем, у меня есть два объекта, a
и b
и функцию f1
в RСсылка список объектов в цикле
a<- 5
b<- 10
f1<-function(){
out<- a+b
return(out)
Я хочу, чтобы написать цикл, который оценивает чувствительность этой функции до значений 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 OK, я обновился, когда перешел к функции 'чувствительность', чтобы обрабатывать как базовое значение, так и 10% больше, чем базовое значение. – josliber
Это так близко. Есть ли способ передать эту команду вектору объектов, вместо того чтобы изменять функцию каждый раз, когда я добавляю/удаляю параметр? Я хотел бы иметь возможность подключать и воспроизводить этот код для других моделей, которые я запускаю, и просто передать им вектор параметров, на которые я хочу оценить чувствительность, и эти параметры всегда будут заданы как объекты R. – colin