Converts select elements of a vector into NA
s
This is how the end results are
NA_at
andNA_if
require a suitable index value (x[y] <- NA
)NA_at
expectsy
(or the result of functiony
) to beintegers
NA_if
expectsy
(or the result of functiony
) to belogical
NA_in
andNA_out
expect some values to match onNA_in
checksx[x %in% y] <- NA
NA_out
checksx[x %out% y] <- NA
(see fuj::match_ext)
See also
Inspired by dplyr::na_if()
Examples
let <- ordered(letters[1:5])
NA_at(let, c(1, 3, 5)) # [1] <NA> b <NA> d <NA>
#> [1] <NA> b <NA> d <NA>
#> Levels: a < b < c < d < e
NA_if(let, let <= "b") # [1] <NA> <NA> c d e
#> [1] <NA> <NA> c d e
#> Levels: a < b < c < d < e
NA_in(let, c("a", "c")) # [1] <NA> b <NA> d e
#> [1] <NA> b <NA> d e
#> Levels: a < b < c < d < e
NA_out(let, c("a", "c")) # [1] a <NA> c <NA> <NA>
#> [1] a <NA> c <NA> <NA>
#> Levels: a < b < c < d < e