我试图通过将它们组合到列表中并使用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。有谁知道我怎么做这个?