所以我在 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
第二个数据,我想将“状态”值替换为主数据。
df2 = data.frame(ID = c("A1", "B2","C1"), status = c("1", "1", "0"))
ID status
A1 1
B2 1
C1 0
最后想要的输出是这样的:
ID year status
A1 2000 1
A2 2001 1
B1 2002 0
B2 2003 1
C1 2004 0
C2 2005 1
如您所见,状态列现在已更新为第二个数据。好吧,我尝试过合并/左连接,但我找不到解决方案,部分数据已更新,部分数据未更新。
此处给出了解决方案,主要针对第二个数据集大于第一个数据集的数据集,正如您可以猜到的那样,我最终有很多 NA。
也试过这个代码:
df1$status[df1$id %in% df2$id] <- df2$status
结果是一样的。因此,如果您能帮助我解决问题所在(是否应该将某些内容静音或突变),那就太好了。
df1$status[df1$ID %in% df2$ID] <- df2$status[df2$ID %in% df1$ID]
那这个呢?您只需填写作业中的条件
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句