繁体   English   中英

匹配/合并具有r中不同列名的数字列的数据框

[英]match/merge dataframes with a number columns with different column names in r

我有两个具有不同列的数据框,这些列具有大量行(大约200万行)

第一个是df1

在此处输入图片说明

第二个是df2

在此处输入图片说明

我需要将表一中的y列中的值匹配到表二中的R列中的示例:请看红色框中df1中的两行与红色框中df2中的两行匹配 在此处输入图片说明

然后我需要获取匹配值的分数

因此结果应如下所示,并且应存储在数据框中:

在此处输入图片说明

我的尝试:首先是R的Im初学者,因此当我搜索时发现可以使用Match函数,merge函数,但是我没有得到想要的结果,可能是因为我不知道如何正确使用它们,因此,我需要循序渐进的非常简单的解决方案

 merge(df1,df2,by.x="y",by.y="R")[c("y","score")]
    y score
1   2     3
2 111     4

我们可以使用base R match

df2[match(df2$R, df1$y, nomatch = 0), c("R", "score")]
#   R score
#3   2     3
#4 111     4

另一个选择是semi_joindplyr

library(dplyr)
semi_join(df2[-1], df1, by = c(R = "y"))
#    R score
#1   2     3
#2 111     4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM