要检查分类变量是否具有多个值之一,我会使用%in%
,但是,这不会处理NAs,而是返回FALSE
。
例如:
foo <- c('a', 'b', NA, 'c')
foo %in% c('a', 'c')
返回TRUE FALSE FALSE TRUE
,当人们可能希望它返回TRUE FALSE NA TRUE
时,因为许多其他布尔语句(==
,>
)返回NA
的情况下其中一个值是。
有没有更好的方法来实现此NA
行为,而无需手动检查每种可能性?即。
foo == 'a' | foo == 'c'
答案 0 :(得分:1)
filename: [name].min.js
OR
replace(foo %in% c('a', 'c'), is.na(foo), NA)
#[1] TRUE FALSE NA TRUE