Я хотел бы создать список функций в R, где значения из цикла for хранятся в определении функции. Вот пример:R: Использование переменной Loop в объявлении функции
init <- function(){
mod <- list()
for(i in 1:3){
mod[[length(mod) + 1]] <- function(x) sum(i + x)
}
return(mod)
}
mod <- init()
mod[[1]](2) # 5 - but I want 3
mod[[2]](2) # 5 - but I want 4
В приведенном выше примере, независимо от того, какую функцию я называю, i
всегда последнее значение в для последовательности петли, я понимаю, что это правильное поведение.
Я ищу что-то, что добивается этого:
mod[[1]] <- function(x) sum(1 + x)
mod[[2]] <- function(x) sum(2 + x)
mod[[3]] <- function(x) sum(3 + x)
Почему? Кажется свернутым. Похоже, вы хотите объявить другую переменную типа 'const <- 2' перед циклом и вместо этого использовать' sum (const + x) '. Все еще очень запутано ... – adatum
Я добавил пример того, как бы хотелось, чтобы каждая функция выглядела. Мой фактический прецедент более сложен. Я просто пытаюсь понять, как работает область действия. – BMW