2014-11-04 16 views
1

每次循环我有以下问题: 我有一个for循环=>for (i in 1:20){t <- c(t,print(i:20))} ...创建一个新的载体中的R

我知道如何保存所有的结果在一个载体,但我想保存将每次迭代的结果作为自己的向量(就像你上面看到的那样)=>以便例如t[18]只是18 19 20和t[20]只是20 我也想过一个矩阵,但每行必须以“20”结尾,所以其余部分需要在20x20矩阵中填充“0”...

+0

这是否真的需要向量?它可能是一个列表吗?更多的上下文会有帮助 – 2014-11-04 13:58:11

+0

这是功课吗? – everton 2014-11-04 16:16:22

回答

1

如何实现这一目的的清单:

lst <- list() 

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

然后通过调用如它存取权限

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

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

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

这会给你变量t1,t2等你想要的。我再次强烈建议使用这种方法很难扩展。

1

我会调整@初学者的回答是这样的:

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

这只是一个小除了,但如果使得性能方面有很大的区别,如果你增加了列表(例如数百万)的大小。