在R中标记数据帧之间的公用行
我试图标记一个较大数据帧中与较小数据帧相同的行 我研究过类似的主题,但不知道如何通过以下方式实现:在R中标记数据帧之间的公用行,r,dataframe,match,R,Dataframe,Match,我试图标记一个较大数据帧中与较小数据帧相同的行 我研究过类似的主题,但不知道如何通过以下方式实现: df1<- data.frame(id = c(1, 2, 3, 4, NA, 5, 6, NA, NA, 7, 8)) df2<- data.frame(id = c(NA, 8, 3, NA, 1)) # Result > df1 id match 1 1 TRUE 2 2 FALSE 3 3 TRUE 4 4 FALSE 5 NA FALSE
df1<- data.frame(id = c(1, 2, 3, 4, NA, 5, 6, NA, NA, 7, 8))
df2<- data.frame(id = c(NA, 8, 3, NA, 1))
# Result
> df1
id match
1 1 TRUE
2 2 FALSE
3 3 TRUE
4 4 FALSE
5 NA FALSE
6 5 FALSE
7 6 FALSE
8 NA FALSE
9 NA FALSE
10 7 FALSE
11 8 TRUE
您可以使用%in%检查匹配项,使用is.na避免与na匹配
您可以使用%in%检查匹配项,使用is.na避免与na匹配
谢谢你,这个&!是。nadf$id是我在尝试中丢失的部分。谢谢,这个&!是的。nadf$id是我在尝试中丢失的部分。
df1$match <- df1$id %in% df2$id & !is.na(df1$id)
df1
# id match
#1 1 TRUE
#2 2 FALSE
#3 3 TRUE
#4 4 FALSE
#5 NA FALSE
#6 5 FALSE
#7 6 FALSE
#8 NA FALSE
#9 NA FALSE
#10 7 FALSE
#11 8 TRUE