根据匹配的行条件和共享列合并两个数据框

时间:2018-12-07 19:48:22

标签: r merge

这是我正在使用的数据集:

数据1:

ID   Grade   Year
1    A       2000
2    B       2001
3    C       2002

数据2:

ID   NewGrade Year
1    B        2000
2    C        2001

我想将Data2中“ NewGrade”中的值合并到Data1中的新列或全新的数据框架“ NewData”中。输出将如下所示:

ID   Grade   Year   NewGrade
1    A       2000   B
2    B       2001   C
3    C       2002   NA

此目的旨在表明已建立新的评分标准,并且与“ Grade”的第一个值有所不同,“ NewGrade”中的新值表明了这一点。为避免重复,我想基于“ ID”和“ Year”两个数据框中的共享列合并NewGrades。如果没有像ID#3这样的NewGrade,它将返回一个空值。

我尝试了以下操作,但它破坏了Rstudio:

newData <- merge(Data1, Data2, col=c("ID", "Year"), x.all=T)

1 个答案:

答案 0 :(得分:0)

您的merge应该看起来像这样

newData = merge(Data1, Data2, by = c("ID", "Year"), all.x = TRUE)

col没有x.allmerge自变量。