很抱歉,如果这很简单,但我一直试图找到答案几个小时。我有两个数据框,每个数据框包含几个列,下面是类似情况的示例(实际数据帧非常大且繁琐)。
第一个数据框
"GPS_ID" "Object_ID" "DBH_cm"
1 19426 15
2 9456 9
3 19887 11
5 18765 4
6 9322 7
第二个数据框
"Location" "ID"
block 1 9456
block 2 18765
block 2 9322
我需要创建一个新对象,该对象只有第二个数据帧中的ID与第一个数据帧中对应的DBH_cm相匹配。我认为合并可能会有所帮助,但是当我尝试它时,它只是将位置列添加到第一个数据框。
答案 0 :(得分:1)
如果我正确理解您的最终输出,merge
函数应该是您所需要的:
> merge(x,y, by.x = "Object_ID", by.y = "ID")
Object_ID GPS_ID DBH_cm Location
1 9322 6 7 block_3
2 9456 2 9 block_1
3 18765 5 4 block_2
您可以通过删除不需要的列来进一步编辑新的data.frame。
答案 1 :(得分:0)
您还可以使用inner_join
中的dplyr
。如果x
和y
是两个数据集
library(dplyr)
colnames(y)[2] <- colnames(x)[2]
inner_join(x,y, by="Object_ID")
# GPS_ID Object_ID DBH_cm Location
# 1 2 9456 9 block 1
# 2 5 18765 4 block 2
# 3 6 9322 7 block 2