R:如何用“while”循环并在对象名中附加变量?

时间:2012-09-07 18:38:57

标签: r

我需要进行以下计算:

a1 = 100 + 1 a2 = 100 + 2 ... a10 = 100 + 10

我尝试按如下方式循环:

z = 1
while(z<11) {
    z = z+1
    a = 100+z
}

如何让R将我的结果存储为a1,a2,... a10?我知道我需要使用“粘贴”,也许“分配”,但我无法弄清楚。非常感谢你的帮助!

修改 非常感谢您的快速和有益的回复。我现在也找到了一种让它工作的方法(虽然不如你的好):

z = 0
while(z<10) {
    z = z+1
    x = 100+z
    assign(paste("a",z, sep=""),x)
}

再次,非常感谢你!

干杯, 克里斯

2 个答案:

答案 0 :(得分:2)

您不需要使用while循环来获取该向量,因为您可以使用100 + 1:10获取该向量。以下是使用mapply分配值的方法:

mapply(assign,value=100+1:10,x=paste0("a",1:10),MoreArgs=list(envir=.GlobalEnv))

答案 1 :(得分:1)

您无需使用while - 使用setNames包中的stats

> (function(x)setNames(x,paste(sep="","a",x)))(1:11)
 a1  a2  a3  a4  a5  a6  a7  a8  a9 a10 a11 
  1   2   3   4   5   6   7   8   9  10  11