令我感到困惑的是,R 无法识别我的数据集中的 NA daily
。快速检查一下daily
可能会让人相信变量OBLIGOR_ID
中没有NA:
class(daily)
# "data.frame"
table(is.na(daily$OBLIGOR_ID))
# FALSE
# 207775
但是,如果为所有 ADJUSTED_ORR
为 62512 的观测值绘制 OBLIGOR_ID
,就会发现
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
有什么建议吗?
最佳答案
示例数据
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
或
子集(dat, STAMP_2 ==1, select=c('STAMP_3'))
STAMP_3
2 NA
3 1
5 NA
关于R 无法识别我的数据集中的 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988248/