我試圖按行名合併多個數據幀。按行名合併多個數據幀
我知道怎麼有兩個做:
x = data.frame(a = c(1,2,3), row.names = letters[1:3])
y = data.frame(b = c(1,2,3), row.names = letters[1:3])
merge(x,y, by = "row.names")
但是當我嘗試使用reshape
包的merge_all()
我發現了一個錯誤。
z = data.frame(c = c(1,2,3), row.names = letters[1:3])
l = list(x,y,z)
merge_all(l, by = "row.names")
Error in -ncol(df) : invalid argument to unary operator
這樣做的最佳方法是什麼?
把行名稱中一個列,然後使用'Reduce':http://stackoverflow.com/q/8091303/817778 – eddi
eg '減少(merge,lapply(l,function(x)data.frame(x,rn = row.names(x))))' – eddi
@eddi這很棒,非常優雅。你可以添加爲答案? –