使用R中另一个数据帧的其他匹配ID替换数据帧中的值

使用R中另一个数据帧的其他匹配ID替换数据帧中的值,r,linux,dataframe,match,R,Linux,Dataframe,Match,因此,我在R中遇到了一个问题,即使用第二个数据帧和匹配的ID来更新主数据帧中的值 下面是数据文件演示: 首先,我的主要数据如下: df1 <- data.frame(ID = c("A1", "A2", "B1", "B2", "C1", "C2"), year = 2000:2005, status = c("0","1","0","0","1","1")) ID year status A1 2000 0 A2 2001 1 B

因此,我在R中遇到了一个问题,即使用第二个数据帧和匹配的ID来更新主数据帧中的值

下面是数据文件演示: 首先,我的主要数据如下:

df1 <- data.frame(ID = c("A1", "A2", "B1", "B2", "C1", "C2"),
                  year = 2000:2005, status = c("0","1","0","0","1","1"))

 ID year status
 A1 2000    0
 A2 2001    1
 B1 2002    0
 B2 2003    0
 C1 2004    1
 C2 2005    1
 ID year status
 A1 2000    1
 A2 2001    1
 B1 2002    0
 B2 2003    1
 C1 2004    0
 C2 2005    1
最后,所需输出如下所示:

df1 <- data.frame(ID = c("A1", "A2", "B1", "B2", "C1", "C2"),
                  year = 2000:2005, status = c("0","1","0","0","1","1"))

 ID year status
 A1 2000    0
 A2 2001    1
 B1 2002    0
 B2 2003    0
 C1 2004    1
 C2 2005    1
 ID year status
 A1 2000    1
 A2 2001    1
 B1 2002    0
 B2 2003    1
 C1 2004    0
 C2 2005    1
正如您所看到的,status列现在用第二个数据更新。 嗯,我尝试了合并/左加入,但我无法获得解决方案,部分数据更新,部分未更新

这里给出了解决方案,主要是针对第二个数据集比第一个数据集大的数据集,正如您可以猜到的,我最后有很多NAs

还尝试了以下代码:

df1$status[df1$id %in% df2$id] <- df2$status

df1$status[df1$id%in%df2$id]
df1$status[df1$id%in%df2$id]我想你在
df1$status[df1$id%in%df2$id]中漏掉了大写字母嘿,谢谢你的回复,但事情又发生了,它在上面的示例数据中不起作用。值中没有替换。
ID year status 1 A1 2000 1 2 A2 2001 1 3 B1 2002 0 4 B2 2003 1 5 C1 2004 0 6 C2 2005 1
我正在获取此输出。对不起,我的意思是它在上面的假设数据中对我的真实数据不起作用。它确实可以处理上面创建的数据。