我想使用smartbind()合并20多个数据帧。 这些数据帧具有不同数量的观察(行)。它们的大多数列都有相同的名称,尽管有些不同。我把它们命名为:
data.Argentina
data.Brazil
data.Venezuela
然后,我写了
library(gtools)
combined.data <- smartbind(mget(ls(pattern = "^data.")))
错误信息是:
data.frame出错(data.Argentina = list(pais = c(1L,1L,1L,1L,1L, :参数意味着不同的行数:1512,3429,1533,3067, 1500,1571,1510,1537,1520,1489,1507,1557,1561,1503,1535, 1546,1508,4000,4203
然后,我必须手动列出所有数据框:
combined.data <- smartbind (data.Argentina, data.Brazil, data.Venezuela)
这次有效!
我可以使用其他功能或其他命令来简化流程吗?
谢谢!
答案 0 :(得分:2)
在列表中传递一堆参数与单独传递它们不同。 do.call
命令可以将列表扩展为不同的参数。尝试
combined.data <- do.call("smartbind", mget(ls(pattern = "^data.")))