我很困惑的事实是R无法识别我的数据集daily
中的NA。快速检查daily
可能会让人相信变量OBLIGOR_ID
中没有NA:
class(daily)
# "data.frame"
table(is.na(daily$OBLIGOR_ID))
# FALSE
# 207775
但是,如果为OBLIGOR_ID
为62512的所有观察结果绘制ADJUSTED_ORR
,则可以找到
daily[daily$ADJUSTED_ORR==62512,c('OBLIGOR_ID')]
# [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
# [60] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
# [119] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
# [178] NA NA NA NA NA NA NA
is.na(daily[daily$ADJUSTED_ORR==62512,c('OBLIGOR_ID')])
# [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
# [36] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
# [71] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
# [106] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
# [141] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
# [176] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
有什么建议吗?
答案 0 :(得分:2)
样本数据
PIN <- c("case1", "case2", "case3", "case4", "case5")
STAMP_1 <- c(1, 1, 1, 1, 1)
STAMP_2 <- c(NA, 1, 1, NA, 1)
STAMP_3 <- c(1, NA, 1, 1, NA)
STAMP_4 <- c(NA, NA, 1, 1, NA)
STAMP_5 <- c(1, NA, NA, 1, NA)
dat <- data.frame(PIN, STAMP_1, STAMP_2, STAMP_3, STAMP_4, STAMP_5)
dat
PIN STAMP_1 STAMP_2 STAMP_3 STAMP_4 STAMP_5
1 case1 1 NA 1 NA 1
2 case2 1 1 NA NA NA
3 case3 1 1 1 1 NA
4 case4 1 NA 1 1 1
5 case5 1 1 NA NA NA
在你的情况下:
dat[dat$STAMP_2==1,'STAMP_3']
[1] NA NA 1 NA NA
有NA
基础R
dat[which(dat$STAMP_2==1),'STAMP_3']
[1] NA 1 NA
或
subset(dat, STAMP_2 ==1, select=c('STAMP_3'))
STAMP_3
2 NA
3 1
5 NA
答案 1 :(得分:0)
这很可能是由于ADJUSTED_ORR包含NA值,您可以尝试以下示例
{{1}}