r - 如何合并匹配的数据并仍然在R中显示不匹配的数据
问题描述
我正在尝试合并两个数据框,但并非所有记录都有主键。
DF1 是:
EmpID SNcode Name
A1 123 Bill
B2 456 Alice
Carrie
DF1
DF2 是:
EmpID Sncode Name Department
A1 123 Bill Accounts
B2 456 Alice CustService
986 Peter
我希望结果是这样的:
EmpID SNcode Name Department
A1 123 Bill Accounts
B2 456 Alice CustService
Carrie
986 Peter
我下面的代码不起作用:
mydata <- merge(DF1, DF2, by="EmpID",all.y=TRUE)
你能帮我解决这个问题吗?我需要 Carrie 和 Peter 出现在结果中。
解决方案
这些是重要的基本代码函数,对于学习和理解 R 中的编码很重要。这里使用了三个不同的函数,它们可以让代码完全按照你想要的方式输出。
首先,要知道这些表的命名顺序与您显示它们的顺序相同。它们在这里被命名为 t1、t2 和 t3。t3 是所需的输出。这些表 t1 和 t2 不会更改并且保持不变。
有四种类型的连接。您可以阅读有关这些连接类型的信息,然后尝试使用它们进行练习。这里我使用了这个full_join()
功能。这将通过它们的列名连接来自两个对象( t2 和 t1 )的值。所有值都连接在一起,没有任何东西被删除或留下。连接后,表 t1 和 t2 保持不变。
然后该函数na.omit()
用于从连接数据中删除 NA。na.omit()
如果在运行函数之前打印 t3,您可以看到这些 NA 。
然后该函数rownames()
用于从连接数据中删除行号。t3 中的数据现在已清理并与您所需的输出格式匹配。
代码和输出如下:
t3 <- full_join(t2, t1) # join
t3 <- na.omit(t3) # remove the NA's
rownames(t3) = NULL # remove the column row numbers
t3 # print the output
推荐阅读
- jquery - Bootstrap Modal 保留隐藏空间
- arrays - MongoDB - 将集合的 id 与给定数组匹配
- javascript - 如何使用 javascript 或 typescript 在表中获取 tr 的第二个 td 值
- node.js - MongoDB 驱动程序:MongoError:未找到游标,游标 ID:7820213409290816 在命名空间:db_name.collection_name
- android - 以编程方式创建三个具有样式和约束布局链接的 MaterialButton
- report - odoo12 报告多部分
- php - php codigneter中未定义的变量角色
- pymongo - 如何用pymongo大写文档字段?
- mysql - 如何提高 MySQL 转储恢复的性能
- node.js - 温斯顿自定义日志颜色