R:合并多个密钥上的数据框列表

时间:2016-06-13 17:57:20

标签: r merge mapply

我试图通过将它们组合到列表中并使用mapply和merge来同时合并r中的几个数据帧。这在合并单个键时工作正常,但在使用' a = c(" a"," b")'合并多个键时则无效。合并中的论点。

Mapply似乎将by参数视为循环的第三个列表,而不是每次都传递整个参数。

例如这段代码:

df <- data.frame(a = rep(1:3, 3),
                 b = c(rep("aa",3), rep("bb",3), rep("cc",3)),
                 c = rnorm(9, mean = 5))
df2 <- df1 <- df 
list1 <- list(df, df1, df2)
df3 <- data.frame(a = rep(3:1, 3),
                  b = c(rep("cc",3), rep("bb",3), rep("aa",3)),
                  c = rnorm(9, mean = -5))
df5 <- df4 <- df3 
list2 <- list(df3, df4, df5)

list3 <- mapply(merge, list1, list2, SIMPLIFY = FALSE, by = c("a","b"))

返回警告消息&#34;较长的参数不是较短长度的倍数&#34;。但是,当我添加第三个术语&#39; by = c(&#34; a&#34;,&#34; b&#34;,&#34; c&#34;)&#39;它试图将第一个数据帧合并为&#34; a&#34;,第二个数据合并为&#34; b&#34;,第三个数据合并为&#34; c&#34;。然而,我想要的是将它们全部合并为两者 a和b。有谁知道我怎么做这个?

0 个答案:

没有答案