r - 如何在R中的merge()之后保留两个表中的公共列?
问题描述
我一直在寻找一种方法来保留 R 合并中的两个公共列,这通常会从数据中删除一个公共列。任何帮助,将不胜感激。
例如
名为“EmpID”、“Sal”、“Dob”、“City”的data.frame 具有demographics
“ ID”、“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 中怎么可能?
解决方案
一种选择是使用该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)
推荐阅读
- javascript - 如何突出显示这样的反应原生地图?
- java - 使用itext pdf在pdf上缺少彩色区域
- javascript - 如果按下按钮,Javascript 会自动刷新 HTML
- docker - 使用 Jenkinsfile 为我的 Web 应用程序运行 docker 容器的专用 jenkins 服务器 - 错误连接拒绝
- r - 根据不同的条件过滤不同的变量
- html - 截断每个表格单元格中的长文本,但在悬停时连续显示每个单元格中的全文
- c++ - 使用 std::cerr 时字符被打乱
- html - 无法使用 api 的某些部分
- string - 插入从给定索引开始的字符串
- swift - DetailViewControllers 内容被截断