首页 > 解决方案 > 在for循环R中迭代地添加到序列

问题描述

我想迭代地将元素添加到我循环的列表中:

list = as.list(c(1,2,3))
list
for (x in list) {
  new_element = as.list(x^2)
  print(new_element)
  list = union(list, new_element)
}
list

但是,R 仅采用循环中的原始 3 个元素。我希望循环继续使用新元素。关于如何调整代码的任何想法?谢谢!

标签: rfor-loop

解决方案


使用while循环而不是for循环,以及break最终终止:

mylist = as.list(c(1,2,3))
i <- 1
while(TRUE){
  x <- mylist[[i]]
  if(x<10){
    new_element <- as.list(x^2)
    print(new_element)
    mylist = union(mylist, new_element)
    i <- i+1
  } else {
    break
  }
}

这会导致mylist循环终止时有 7 个项目(分别包含 1、2、3、4、9、16、81 的列表)。


推荐阅读