【问题标题】:Multiple merges using base R使用基础 R 进行多次合并
【发布时间】:2021-03-28 15:15:02
【问题描述】:

使用(基础)R 中的“合并”功能,我已经弄清楚如何在单个列上进行连接......如果该列在两个表中具有相同的名称:(在这个例子中,我做了一个左加入)

result = merge( x = table_a, y = table_b, by = "col_a", all.X = TRUE)

但是如果列名不同,有没有办法做到这一点?

例如

result_1 = merge( x = table_a, y = table_b, by = "table_a$col_a = table_b$col_b", all.X = TRUE)

这也可以使用多个条件来完成吗?

result_2 = merge( x = table_a, y = table_b, by = c("table_a$col_a = table_b$col_b" & table_a$col_c = table_b$col_d" & table_a$col_e= table_b$col_f" ), all.X = TRUE)

谢谢

【问题讨论】:

  • 您不需要by 中的table_b$。在merge 中将是by.xby.y

标签: r join merge data-manipulation


【解决方案1】:

使用merge,我们可以将by.xby.y 作为参数

merge( x = table_a, y = table_b, by.x = "col_a", by.y = "col_b", all.X = TRUE)

by 中命名vector 的语法(不包括"table_ar$" 将是dplyr 中的连接语法

【讨论】:

  • 感谢您的回复!只是为了澄清-不可能对多列使用“合并”语句?例如合并(x = table_a,y = table_b,c(by.x = “col_a”,by.y = “col_b”,&“by.x = “col_c”,by,y = “col_d”),all.X = 真)
  • @stats555 你的语法是merge(x = table_a, y = table_b, by.x = c("col_a", "col_c"), by.y = c("col_b", "col_d"), all.x = TRUE)
猜你喜欢
  • 1970-01-01
  • 2016-07-04
  • 1970-01-01
  • 2015-07-09
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多