Как генерировать случайные функции, используя цикл for? - PullRequest
0 голосов
/ 26 мая 2019

Я хочу создать случайный набор функций, используя цикл for, но мои функции заканчиваются тем же.

Я думаю, это связано с окружающей средой, но я не смог это исправить:

a <- runif(100)

for(i in 1:100){
  assign(paste0("r",i), function(x){a[i]*x})
  }

Все созданные сто (от r1 до r100) функций оказываются одинаковыми.

Я бы хотел, чтобы они имели случайные a параметры.

Ответы [ 2 ]

0 голосов
/ 26 мая 2019

Вот адаптированная версия по ссылке в комментарии пользователя 202729:

a <- runif(100)

invisible(lapply(1:100, function(i) {
  assign(paste0("r",i), function(x){a[i]*x}, envir = .GlobalEnv)
  }))

Возможно, вы заметили, что функции r1 до r100 всегда оцениваются с использованием a[100].Это было потому, что i=100 в конце цикла.Если вы изменили i на что-то другое, вы получите другие оценки функций.

0 голосов
/ 26 мая 2019

Попробуйте это:

for(i in 1:100){
  a <- runif(1)
  assign(paste0("r",i), function(x){a*x})
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...