R:如何以更简单的方式智能绑定多个数据帧?

时间:2015-11-03 23:25:45

标签: r dataframe

我想使用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)

这次有效!

我可以使用其他功能或其他命令来简化流程吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

在列表中传递一堆参数与单独传递它们不同。 do.call命令可以将列表扩展为不同的参数。尝试

combined.data <- do.call("smartbind", mget(ls(pattern = "^data.")))