首页 > 解决方案 > 根据另一个data.frame的行选择行

问题描述

我有以下这些data.frames:

dt1

Id  Mother Weight  
1    elly     10
2    bina     20
3    sirce    30
4    tina     30
5    lina     40

dt2

Id   Mother  Weight  sex  
1    elly     10      M
2    bina     20      F
3    sirce    30      F

我想从基于 DT2 (ID) 的 DT1 (ID) 中选择行,这样:

新的.dt

Id   Mother  Weight  sex
4    tina     30     NA
5    lina     40     NA

标签: rdataframe

解决方案


transform(dt1[!dt1$Id %in% dt2$Id,], sex = NA)
#  Id Mother Weight sex
#4  4   tina     30  NA
#5  5   lina     40  NA

d = merge(dt1, dt2, all = TRUE)
d[is.na(d$sex),]
#  Id Mother Weight  sex
#4  4   tina     30 <NA>
#5  5   lina     40 <NA>

推荐阅读