我需要进行以下计算:
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)
}
再次,非常感谢你!
干杯, 克里斯
答案 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