#r #for-loop #null
#r #for-цикл #null
Вопрос:
Почему этот «forkid1» возвращает значение null вместо вектора из 1000 элементов?
set.seed(123)
kid1 <- c()
momprob <- rbinom(1000, 1, 1/3)
forkid1 <- for (i in 1:length(momprob)){
if (momprob[i] == 1) {
kid1[i] <-- rbinom(1, 1, 1/2)
} else {kid1[i] <- 0 }
}
forkid1
(Новичок в R и пытался прочитать предыдущие ответы. Заранее спасибо)
Редактировать: Кроме того, я думал, что rbinom должен был возвращать список из 0 и 1 — почему я получаю -1?
Ответ №1:
Здесь нам нужно проверить ‘kid1’ и не назначать for
цикл
kid1 <- integer(1000)
for (i in 1:length(momprob)){
if (momprob[i] == 1) {
kid1[i] <- -rbinom(1, 1, 1/2)
} else {kid1[i] <- 0 }
}
head(kid1)
#[1] 0 0 0 -1 0 0
Комментарии:
1. Спасибо! Почему назначение все испортило?
2. @PoliScigrad это ничего не испортило. Вы должны были проверить
kid1
, а неforkid1