请原谅我是否曾经被问过,但我无法输入正确的搜索字词来查找其他有此问题的人。
使用循环,我创建了数据帧名称的列表。我想做的是使用该列表的引用,以便rbind将相应的数据帧附加在一起。以下是我要执行的操作的示例:
list <- list("df1","df2","df3") #represents the list of names of the dataframes
all_df <- rbind(list)
上面只是将数据框的名称附加在一起,而不是数据框本身。我也尝试过:
all_df <- rbindlist(list)
和
all_df <- do.call(what = rbind, args = list)
但没有运气。我能找到的所有建议似乎都指向数据框列表,而不是数据框名称列表。
请帮忙!我为此付出了努力,因为我知道解决方案可能真的很简单!
如果我理解正确,则您有一个字符向量,其中包含要绑定的对象的名称。您的目标是使用“名称向量”将多个数据框绑定为单个数据框。
我可以建议使用mget()
函数将您的字符向量转换为实际对象的名称吗?这不需要列出。
请参见下面的代码:
# dummy data to test it
df1 <- head(mtcars, 2)
df2 <- head(mtcars, 3)
df3 <- head(mtcars, 4)
# your "vector of names"
lst.names <- list("df1","df2","df3") # the output of your loop
df.names <- do.call(rbind, lst.names)[, 1] # change the list to a character vector
# this seems to work
do.call(rbind, mget(df.names))
输出:
> do.call(rbind, mget(df.names))
mpg cyl disp hp drat wt qsec vs am gear carb
df1.Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
df1.Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
df2.Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
df2.Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
df2.Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
df3.Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
df3.Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
df3.Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
df3.Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句