在R中的每个循环迭代中创建一个新向量

时间:2014-11-04 13:52:25

标签: r

我有以下问题: 我有一个for-loop =&gt; for (i in 1:20){t <- c(t,print(i:20))} ...

我知道如何将所有结果保存在一个向量中,但我想将EACH迭代的结果保存为自己的向量(就像你在上面看到的那样)=&gt;所以,例如t[18]仅为18 19 20,而t[20]仅为20 我也想过一个矩阵,但是每行必须以&#34; 20&#34;所以剩下的就需要填满&#34; 0&#34;在20x20矩阵中......

3 个答案:

答案 0 :(得分:1)

为此目的的列表怎么样:

lst <- list()

for (i in 1:20){
  lst[[i]] <- i:20
}

然后通过调用例如访问它来访问它

lst[[18]]
#[1] 18 19 20

答案 1 :(得分:1)

我会像这样调整@ beginneR的答案:

lst <-vector("list",20)
for (i in 1:20){
  lst[[i]] <- i:20
}

这只是一个很小的补充,但如果你增加列表的大小(例如数百万),如果在性能方面有很大的不同。

答案 2 :(得分:0)

我非常同意@beginneR,但如果您真的想在循环中使用新变量,可以使用assign()。

for (i in 1:20){
  assign(paste("t",i, sep = ""), i:20)
}

这将根据需要为您提供变量t1,t2等。我强烈建议使用列表,这种方法很难扩展。