RTRUE / FALSE和/或NA
示例
NA是逻辑类型,如果结果不明确,NA则返回带有的逻辑运算符NA。下面,NAORTRUE计算结果为TRUE,因为至少有一个侧面的计算结果为TRUE,但NAORFALSE回报NA,因为我们不知道是否NA会一直TRUE或FALSE
NA | TRUE # [1] TRUE # TRUE | TRUE is TRUE and FALSE | TRUE is also TRUE. NA | FALSE # [1] NA # TRUE | FALSE is TRUE but FALSE | FALSE is FALSE. NA & TRUE # [1] NA # TRUE & TRUE is TRUE but FALSE & TRUE is FALSE. NA & FALSE # [1] FALSE # TRUE & FALSE is FALSE and FALSE & FALSE is also FALSE.
如果要基于包含的某些列对数据集进行子集化,这些属性将很有用NA。
df <- data.frame(v1=0:9,
v2=c(rep(1:2, each=4), NA, NA),
v3=c(NA, letters[2:10]))
df[df$v2 == 1 & !is.na(df$v2), ]
# v1 v2 v3
#1 0 1 <NA>
#2 1 1 b
#3 2 1 c
#4 3 1 d
df[df$v2 == 1, ]
v1 v2 v3
#1 0 1 <NA>
#2 1 1 b
#3 2 1 c
#4 3 1 d
#NA NA NA <NA>
#NA.1 NA NA <NA>