r - R - 基于共享相似列但长度不同的另一个 data.frame 将列添加到第一个 data.frame
问题描述
我有一个第一个 data.frame d1
,其中包含每个生物体的 2 个数字(A 和 B)。
Organism1 <- c("name1", "name3", "name5")
Number1 <- c("numberA1", "numberA3", "numberA5")
Number2 <- c("numberB1", "numberB3", "numberB5")
d1 <- data.frame(Organism1, Number1, Number2)
d1
我有第二个 data.frame d2
,其中包含每个生物体的状态
Organism2 = c("name1", "name2", "name3", "name4", "name5", "name6")
Status = c("Bad", "Good", "Neutral", "Good", "Good", "Bad")
d2 = data.frame(Organism2, Status)
d2
我想“合并”这两个 data.frame 以获得第三个d3
对应于d1
+Status
列的
Organism3 = c("name1", "name3", "name5")
Number1 = c("numberA1", "numberA3", "numberA5")
Number2 = c("numberB1", "numberB3", "numberB5")
Status3 = c("Bad", "Neutral", "Good")
d3 = data.frame(Organism1, Number1, Number2, Status3)
d3
这个想法只是将状态列添加到d1
. 对于每一个d1
不被d2
放入NA
的有机体d3
我查看了该merge
功能,但没有成功获得我想要的东西。
解决方案
使用merge
您获得此输出:
merge(d1,d2,by.x="Organism1",by.y="Organism2", all.x=T)
Organism1 Number1 Number2 Status
1 name1 numberA1 numberB1 Bad
2 name3 numberA3 numberB3 Neutral
3 name5 numberA5 numberB5 Good
但是在你想要的输出中d3
你有不同的值Status
,你的逻辑是什么?
推荐阅读
- ios - SwiftUI - 使用未正确取消选择其他按钮的按钮进行分段控制
- azure-data-lake-gen2 - ADLS 中容器内的文件夹级别访问控制
- angular - 键盘输入时关注下一个链接 显示更多
- vue.js - 如何在 vue.js 中显示图像 url
- sql - 在 MS Access 中将日期作为一个字段从 2 个表中排序
- python - 您如何获取和比较存储在网页元素中的文本?使用硒,Python
- linux - 从星期一开始的月份
- javascript - Javascript 事件侦听器单击多个
- javascript - Express.js - 点击 url 从 api 下载文件
- apache - 服务器重定向