如何使用dplyr连接多个数据框?

纳乔卡布

我要left_join多个数据框:

dfs <- list(
  df1 = data.frame(a = 1:3, b = c("a", "b", "c")),
  df2 = data.frame(c = 4:6, b = c("a", "c", "d")),
  df3 = data.frame(d = 7:9, b = c("b", "c", "e"))
)
Reduce(left_join, dfs)
#   a b  c  d
# 1 1 a  4 NA
# 2 2 b NA  7
# 3 3 c  5  8

之所以可行b是因为它们都具有相同的列,但Reduce不允许我指定其他可以传递给的参数left_join是否可以解决类似这样的问题?

dfs <- list(
  df1 = data.frame(a = 1:3, b = c("a", "b", "c")),
  df2 = data.frame(c = 4:6, d = c("a", "c", "d")),
  df3 = data.frame(d = 7:9, b = c("b", "c", "e"))
)

更新资料

这种工作方式:Reduce(function(...) left_join(..., by = c("b" = "d")), dfs)但是当by一个以上元素时,会出现此错误:Error: cannot join on columns 'b' x 'd': index out of bounds

乔尔·威尔森

我知道为时已晚。...今天我被介绍到未回答的问题部分。很抱歉打扰。

使用 left_join()

dfs <- list(
              df1 = data.frame(b = c("a", "b", "c"), a = 1:3),
              df2 = data.frame(d = c("a", "c", "d"), c = 4:6),
              df3 = data.frame(b = c("b", "c", "e"), d = 7:9)
         )

func <- function(...){
  df1 = list(...)[[1]]
  df2 = list(...)[[2]]
  col1 = colnames(df1)[1]
  col2 = colnames(df2)[1]
  xxx = left_join(..., by = setNames(col2,col1))
  return(xxx)
}
Reduce( func, dfs)
#  b a  c  d
#1 a 1  4 NA
#2 b 2 NA  7
#3 c 3  5  8

使用merge()

func <- function(...){
  df1 = list(...)[[1]]
  df2 = list(...)[[2]]
  col1 = colnames(df1)[1]
  col2 = colnames(df2)[1]
  xxx=merge(..., by.x = col1, by.y = col2, , all.x = T)
  return(xxx)
}

Reduce( func, dfs)
#  b a  c  d
#1 a 1  4 NA
#2 b 2 NA  7
#3 c 3  5  8

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何设置多个连接池的时候,多个数据源春引导使用?

连接多个数据框的组

熊猫左外连接多个列上的多个数据框

如何使用JPA连接到多个数据库?

如何使用dplyr合并两个数据框以汇总同一列的值?

如何将多个数据框对象连接到字符串中

如何使用嵌套的for循环创建多个数据框

使用链式“ join”而不是merge或concat连接多个数据框是否有效?

Python Pandas连接多个数据框

连接多个数据框时保留原始分类映射

如何在熊猫中使用索引连接两个数据框?

如何在不键入每个数据框名称的情况下连接多个数据框

如何使用dplyr管道一次嵌套一个数据框的多个列表列

循环dplyr并创建多个数据框

如何使用lapply()创建多个数据框?

将多个数据框列连接到一个数据框列下的单个数组中

如何添加图例以使用多个数据框中的数据进行绘图

使用多个列连接熊猫数据框

如何串联来自熊猫的多个来源的多个数据框

如何使用多种功能创建多个数据框

如何使用Python Pandas使用同一数据库创建多个数据框

Pyspark eval或expr-使用when语句连接多个数据框列

如何使用Seaborn Relplot绘制来自多个数据框的数据?

根据多个条件连接两个数据框

连接多个数据框

使用R中的函数和map()通过不同的列连接多个数据框?

如何使用dplyr函数顺序连接两个数据帧?

如何连接多个数据框

如何使用 DF / 列表索引将数据框列表连接到一个数据框?

TOP 榜单

热门标签

归档