使用paste0创建具有for循环的多个对象名称

使用paste0创建具有for循环的多个对象名称,r,list,for-loop,paste,R,List,For Loop,Paste,我想用for循环创建多个对象名。我尝试过以下方法,但失败得很惨: somevar_1 = c(1,2,3) somevar_2 = c(4,5,6) somevar_3 = c(7,8,9) for (n in length(1:3)) { x <- as.name(paste0("somevar_",[i])) x[2] } somevar_1=c(1,2,3) somevar_2=c(4,5,6) somevar_3=c(7,8,9) 长度为n(1:3)){ x我们可以使用mget获

我想用for循环创建多个对象名。我尝试过以下方法,但失败得很惨:

somevar_1 = c(1,2,3)
somevar_2 = c(4,5,6)
somevar_3 = c(7,8,9)
for (n in length(1:3)) {
x <- as.name(paste0("somevar_",[i]))
x[2]
}
somevar_1=c(1,2,3)
somevar_2=c(4,5,6)
somevar_3=c(7,8,9)
长度为n(1:3)){

x我们可以使用
mget
获取列表中所有必需的对象,并使用
sapply
从每个对象中子集第二个元素

sapply(mget(paste0("somevar_", 1:3)), `[`, 2)

#somevar_1 somevar_2 somevar_3 
#        2         5         8 

这就是您试图作为.character(c(somevar_1,somevar_2,somevar_3))执行的操作吗
?我不确定我是否理解你的评论..但下面Aron所做的正是我想要的。这种函数方法是更好的答案。谢谢Ronak。其想法是使用for循环根据另一个列表更新一个列表。类似于:
for(n in 2){x@Tom可能类似于
Map(function(x,y){listofNLD[[x]]
[1] 2
[1] 5
[1] 8
sapply(mget(paste0("somevar_", 1:3)), `[`, 2)

#somevar_1 somevar_2 somevar_3 
#        2         5         8