给定一个包含3列的数据框,A,B,C:
A B C
P NA black
W 4 white
F 6 black
R NA pink
H 8 blue
V NA yellow
使用R,我想弄清楚如何在C列中提取具有唯一值的行 AND text" NA"在B栏中。
因此,在这种情况下,提取的行应该是第4行和第6行。
答案 0 :(得分:2)
subset(dat, !duplicated(C) & !duplicated(C, fromLast=T) & is.na(B))
# A B C
# 4 R NA pink
# 6 V NA yellow
答案 1 :(得分:1)
如果您的列B
存储字符串"NA"
,请执行此操作
dat[ave(rep(1,nrow(dat)), dat$C, FUN=sum)==1 & dat$B=="NA",]
如果它存储实际的NA
值(缺失值),请执行此操作
dat[ave(rep(1,nrow(dat)), dat$C, FUN=sum)==1 & is.na(dat$B),]
其中dat
是您的数据框。结果:
A B C
4 R NA pink
6 V NA yellow