使用R中另一个数据帧的其他匹配ID替换数据帧中的值
因此,我在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
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
我正在获取此输出。对不起,我的意思是它在上面的假设数据中对我的真实数据不起作用。它确实可以处理上面创建的数据。