R中的循环持续意外运行

时间:2018-11-15 19:17:13

标签: r

我正在尝试运行一个包含 while if 语句的循环。该代码在循环外起作用,但在内部不起作用!这是一个非常简化的版本,基本上是试图收集每个包含10个数字的集合xx [j]。

当我运行它时,它实际上从未将'x'分配给集合xx [j],但是我不确定为什么!

n <- 10
xx <- list()

for (j in 1:5) {
  xx[j] <= NULL
  while (length(xx[j]) < n) {
    x <- runif(1)
    if (0.5 <= x) {
      xx[j] <- c(xx[j], x) 
    }
  }
}

1 个答案:

答案 0 :(得分:2)

我已经修复并完善了代码。

更改为:

  • 使用双括号xx[[j]]
  • 访问列表中的元素
  • 已创建目标长度为5的列表
  • 删除了将列表元素最初设置为NULL的情况下将其设置为NULL

固定代码:

n = 10
xx = vector('list',5)

for (j in seq_along(xx)) {
    while(length(xx[[j]]) < n){
        x = runif(1)
        if (0.5 <= x) {
            xx[[j]] = c(xx[[j]], x) 
        }
    }
}