R 以迭代方式创建列表列表

R 以迭代方式创建列表列表,r,R,我有一个循环,每次重复100次,创建三个对象,例如: a<-TRUE b<-1:20 c<-matrix(data=NA,ncol=2,nrow=10) 我想将新的abc添加到现有列表中,而不是覆盖列表 是否可以在每次迭代时更新列表以避免过度加载 有人能帮忙吗?试试这个: fun <- function() { #insert here as much code as you desire a<-TRUE b<-1:20 c<-matr

我有一个循环,每次重复100次,创建三个对象,例如:

a<-TRUE
b<-1:20
c<-matrix(data=NA,ncol=2,nrow=10)
我想将新的abc添加到现有列表中,而不是覆盖列表

是否可以在每次迭代时更新列表以避免过度加载

有人能帮忙吗?

试试这个:

fun <- function() {
  #insert here as much code as you desire
  a<-TRUE
  b<-1:20
  c<-matrix(data=NA,ncol=2,nrow=10)

  list(a, b, c)
} 

replicate(100, fun(), simplify=FALSE)
如果函数在某种程度上依赖于迭代,则应改用Lappy。

尝试以下方法:

fun <- function() {
  #insert here as much code as you desire
  a<-TRUE
  b<-1:20
  c<-matrix(data=NA,ncol=2,nrow=10)

  list(a, b, c)
} 

replicate(100, fun(), simplify=FALSE)

如果你的函数在某种程度上依赖于迭代,你应该使用lappy来代替。

如果我理解这个问题,你需要一个地方来存储你的100个列表。如果一开始是这样做的话

myList<-vector("list",100)

您现在有一个包含100个插槽的空列表。每次循环后,将输出列表分配到正确的插槽。也就是说,对于迭代34,将输出放在mylist[[34]]中。myList中的每个条目本身就是您的结果列表。

如果我理解这个问题,您需要一个地方来存储您的100个列表。如果一开始是这样做的话

myList<-vector("list",100)

您现在有一个包含100个插槽的空列表。每次循环后,将输出列表分配到正确的插槽。也就是说,对于迭代34,将输出放在mylist[[34]]中。myList中的每个条目本身就是一个结果列表。

使用Lappy而不是循环。这是不可能的,因为这是一个包含100行代码的大型模拟。该列表将存储整个模拟的结果o?您仍然可以使用Lappy。您的意思是使用Lappy在其中执行一系列其他应用函数和循环?@Rich Scriven在这里回答了您的问题URL:使用Lappy而不是循环。这是不可能的,因为这是一个包含100行代码的大型模拟。该列表将存储整个模拟的结果o?您仍然可以使用Lappy。您的意思是使用Lappy在其中执行一系列其他应用函数和循环?@Rich Scriven在这里回答了您的问题URL:但问题是,在每次迭代中,前面的a、b、c都会被覆盖,所以我看不出这是如何解决问题的如果这不能满足您的需要,你对你的问题解释得不够好。你的编辑并没有改变我的asnwer做了你声称想做的事情的事实。但问题是,在每次迭代中,前面的a、b、c都会被覆盖,所以我看不出这是如何解决问题的。如果这不能满足你的需要,你对你的问题解释得不够好。嗯,您的编辑不会改变我的asnwer做您声称想要的事情的事实。