R 组合来自名称向量的数据帧

R 组合来自名称向量的数据帧,r,dataframe,rbind,R,Dataframe,Rbind,我有一个我认为很容易解决的问题,但我没有找到解决办法。 我有大量的数据帧要按行绑定。为了避免列出所有数据帧的名称,我使用“paste0”快速创建数据帧名称的向量。问题是,我无法使rbind函数从这个名称向量中识别数据帧。 更明确地说: df1 <- data.frame(x1 = sample(1:5,5), x2 = sample(1:5,5)) df2 <- data.frame(x1 = sample(1:5,5), x2 = sample(1:5,5)) idvec &l

我有一个我认为很容易解决的问题,但我没有找到解决办法。 我有大量的数据帧要按行绑定。为了避免列出所有数据帧的名称,我使用“paste0”快速创建数据帧名称的向量。问题是,我无法使rbind函数从这个名称向量中识别数据帧。 更明确地说:

df1 <- data.frame(x1 = sample(1:5,5), x2 =  sample(1:5,5))
df2 <- data.frame(x1 = sample(1:5,5), x2 =  sample(1:5,5))
idvec <- noquote(c(paste0("df",c(1,2))))
> [1] df1 df2

df1如果全局环境中有多个对象的模式
df
后跟数字,则一个选项是使用
ls
查找所有具有
pattern
参数的对象。用
mget
包装它可以获取
列表中的值
,我们可以用
do.call
rbind

v1 <- ls(pattern='^df\\d+')
`row.names<-`(do.call(rbind,mget(v1)), NULL)

这将产生以下结果:

dfcount <- 2
dftot <- df1 #initialise
for(n in 2:dfcount){dftot <- rbind(dftot, eval(as.name(paste0("df", as.character(n)))))}

dfcount我不清楚你在这里的目标是什么。是否要将特定行标记为来自特定数据帧?非常感谢。我不知道函数mget,这正是我需要的。@user34771很高兴知道它起作用了。谢谢你的反馈。非常感谢,eval函数也非常有用。很高兴它很有用。我今天才发现的。在此之前,如果我想通过字符串引用变量,我会让R编写一个脚本文件,然后将其源代码!
v1 <- paste0('df', 1:2)
 `row.names<-`(do.call(rbind,mget(v1)), NULL)
dfcount <- 2
dftot <- df1 #initialise
for(n in 2:dfcount){dftot <- rbind(dftot, eval(as.name(paste0("df", as.character(n)))))}