1

我需要进行以下计算:

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)
}

再次,非常感谢!

干杯,克里斯

4

2 回答 2

2

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

mapply(assign,value=100+1:10,x=paste0("a",1:10),MoreArgs=list(envir=.GlobalEnv))
于 2012-09-07T18:51:35.583 回答
1

您不需要使用while-setNamesstats包中使用:

> (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 
于 2012-09-07T18:46:43.087 回答