Функция R For loop возвращает значение NULL

#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