2015-10-04 64 views
1

下面是一个简单的循环商店循环的结果中唯一对象

for (i in seq(1,30)) { 
    mdl<-i 
} 

我如何获得30 mdl而不仅仅是一个mdl(这是因为内环路发生,mdli正在mdli+1在更换。每次迭代我要的是一个像mdl1名有30 mdl也许,mdl2 .... mdl30

我尝试这样做:

for (i in seq(1,30)) { 
    mdli<-i 
} 

但如果我键入mdl1,它说mdl1 not found而打字mdli给我的i=5

值谢谢

+2

'mdl < - 整数(30)'在循环外(第一个),以及'mdl [i] < - i'在循环内。这可能有助于http://stackoverflow.com/questions/32620557/simple-function-in-r/32620651#32620651 –

+0

谢谢。但是有没有什么办法可以事先指定'mdl <-integer(30)'。由于数据量非常大,我不确定有多少个mdl。我只是想知道是否有任何方法可以让mdl取对应于i的值的名称 – KS89

+0

但是,您有一个已知长度的序列,因此分配长度与序列长度相同的向量是有意义的(for)语句。 –

回答

1

您可以指定存储可变beforhand没有确定多少值应当存储。如果您想要为每个值分别指定一个变量,请查看paste函数。

x<- NULL 
for (i in 1:10){ 
x[i] <- i*2 
} 

*编辑:上面的评论是正确的。这种方式并不是最有效的方法。但是当计算时间不成问题时我仍然使用它。

+0

感谢您的解决方案和意见 – KS89