【问题标题】:R For loop function returns NULLR For循环函数返回NULL
【发布时间】:2021-01-06 22:46:45
【问题描述】:

为什么这个“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?

【问题讨论】:

    标签: r for-loop null


    【解决方案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
    

    【讨论】:

    • 谢谢!为什么分配搞砸了?
    • @PoliScigrad 它没有搞砸任何事情。您应该检查 kid1 而不是 forkid1
    猜你喜欢
    • 2016-02-25
    • 1970-01-01
    • 2016-11-12
    • 2019-02-08
    • 2021-05-23
    • 2015-08-08
    • 2015-08-08
    • 1970-01-01
    • 2022-08-24
    相关资源
    最近更新 更多