Я хотел бы создать набор функций с определенной структурой в имени переменной в качестве грубого обходного пути для того, что должно быть одной функцией с несколькими аргументами (это я не могу сделать напрямую).Давайте рассмотрим следующий аналогичный пример:
for(i in 1:3){
for(j in 1:2){
temp_fun <- function(x){
(x+i)^j
}
assign(paste0("fun", paste0("_plus_", i, "_pow_", j)), temp_fun)
}
}
Этот цикл создает 6 функций, которые имеют x
только в качестве зависимой переменной
fun_plus_1_pow_1
fun_plus_1_pow_2
fun_plus_2_pow_1
fun_plus_2_pow_2
fun_plus_3_pow_1
fun_plus_3_pow_2
Например, fun_plus_2_pow_1(2)
должно возвращать (2+2)^1 = 4
,однако он возвращает 25
.Я знаю, что здесь происходит, значения i
и j
обновляются во время работы цикла, и в конечном итоге i=3
и j=2
принимаются, в результате чего (2+3)^2 = 25
.
Но как я могу сделать их локальными?