我有两个具有不同列的数据帧,这些列具有大量行(约200万)
第一个是df1
第二个是df2
我需要将表格1中y列中的值与表2中的R列匹配 例: 看到红色框中df1中的两行与红色框中的df2中的两行匹配
然后我需要得到匹配值的分数
所以结果应该是这样的,它应该存储在数据帧中:
我的尝试:首先是我在R中的初学者,所以当我搜索时,我发现我可以使用Match功能,合并功能,但我没有得到我想要的结果,因为我不知道如何正确使用它们,因此,我需要一步一步非常简单的解决方案
答案 0 :(得分:1)
merge(df1,df2,by.x="y",by.y="R")[c("y","score")]
y score
1 2 3
2 111 4
答案 1 :(得分:1)
我们可以使用match
base R
df2[match(df2$R, df1$y, nomatch = 0), c("R", "score")]
# R score
#3 2 3
#4 111 4
或其他选项semi_join
来自dplyr
library(dplyr)
semi_join(df2[-1], df1, by = c(R = "y"))
# R score
#1 2 3
#2 111 4