R 在2个数据帧中匹配2列
我有两个数据帧:R 在2个数据帧中匹配2列,r,R,我有两个数据帧: frame1 First_Name Last_Name John Smith Jane Doe John Doe frame2 First_Name Last_Name John Smith Sally Smith Jane Doe 我只想提取First_Name和Last_Name列匹配的行: output: First_Name Last_Name
frame1
First_Name Last_Name
John Smith
Jane Doe
John Doe
frame2
First_Name Last_Name
John Smith
Sally Smith
Jane Doe
我只想提取First_Name和Last_Name列匹配的行:
output:
First_Name Last_Name
John Smith
Jane Doe
谢谢大家! 我们可以从
dplyr
library(dplyr)
intersect(frame1, frame2)
# First_Name Last_Name
#1 John Smith
#2 Jane Doe
或内部连接
inner_join(frame1, frame2)
或者使用
data.table中的fintersect
library(data.table)
fintersect(setDT(frame1), setDT(frame2))
或者在base R
中使用merge
merge(frame1, frame2)
数据
frame1您还可以使用Reduce
尝试base R
解决方案。代码如下:
数据:
或者只是merge()
:
输出:
First_Name Last_Name
1 John Smith
2 Jane Doe
First_Name Last_Name
1 John Smith
2 Jane Doe
#Code
df <- Reduce(function(x,y) merge(x,y,sort=F),x = list(frame1,frame2))
First_Name Last_Name
1 John Smith
2 Jane Doe
#Code2
merge(frame1,frame2,sort=F)
First_Name Last_Name
1 John Smith
2 Jane Doe