首页 > 解决方案 > 如何在R中的merge()之后保留两个表中的公共列?

问题描述

我一直在寻找一种方法来保留 R 合并中的两个公共列,这通常会从数据中删除一个公共列。任何帮助,将不胜感激。

例如

名为“EmpID”、“Sal”、“Dob”、“City”的data.frame 具有demographicsID”、“Loan1”、“Bonus”transaction

如果进行内部连接,

res <- merge(demographics, transaction, by.x = "EmpID", by.y = "ID")

结果表res将具有以下列

“EmpID” “Sal” “Dob” “City” “Loan1” “Bonus”

我也想包括“ID”列。

“EmpID” “Sal” “Dob” “City” “ID” “Loan1” “Bonus”

在 R 中怎么可能?

标签: rjoinmerge

解决方案


一种选择是使用该sqldf库,只需编写一个保留所有列的查询:

library(sqldf)
sql <- "select d.*, t.* from demographics d inner join transaction t "
sql <- paste0(sql, "on d.EmpID = t.ID")

res <- sqldf(sql)

推荐阅读