#r #loops #for-loop
#r #циклы #цикл for
Вопрос:
Я хочу запустить цикл for 1000 раз, генерируя новый набор новых чисел, которые затем запускаются через мою функцию cdfx. Однако, когда я запускаю свой код, я получаю: Ошибка: объект ‘rdm’ не найден.
for (i in 1:1000) {
rdm[i] <- runif(12, 17, 22)
cdfxr <- cdfx(rdm[i])
cdfxr[i] <- cdfxr
}
Кто-нибудь, пожалуйста, может сказать мне, что я делаю не так?
Комментарии:
1.
rdm
Существует ли перед циклом? При попытке индексировать объект с помощью[i]
он должен сначала существовать. Может быть, попробуйтеrdm <- vector("numeric", 1000)
перед вашим циклом, чтобы массив действительно существовал до того, как вы его проиндексируете.2. На самом деле, похоже, что вы пытаетесь обрабатывать более одного числа за раз, в этом случае
rdm
должен быть список, и вы должны индексировать с помощью[[]]
, поэтому попробуйтеrdm <- vector("list", 1000)
перед циклом и используйтеrdm[[i]]
вместоrdm[i]
3. Было бы намного быстрее сгенерировать один большой список с помощью
runif(12*1000, 17, 22)
, а затем при необходимости подмножествовать весь список.4. Использовать
replicate(1000, whatever_code)
? Или, как предложил Дейвtapply(runif(12*1000, 17, 22), rep(1:1000, each=12), cdfx)
.