na_if {dplyr} | R Documentation |
Convert values to NA
Description
This is a translation of the SQL command NULLIF
. It is useful if you want
to convert an annoying value to NA
.
Usage
na_if(x, y)
Arguments
x |
Vector to modify |
y |
Value or vector to compare against. When
|
Value
A modified version of x
that replaces any values that
are equal to y
with NA
.
See Also
coalesce()
to replace missing values with a specified
value.
tidyr::replace_na()
to replace NA
with a value.
Examples
na_if(1:5, 5:1)
x <- c(1, -1, 0, 10)
100 / x
100 / na_if(x, 0)
y <- c("abc", "def", "", "ghi")
na_if(y, "")
# `na_if()` allows you to replace `NaN` with `NA`,
# even though `NaN == NaN` returns `NA`
z <- c(1, NaN, NA, 2, NaN)
na_if(z, NaN)
# `na_if()` is particularly useful inside `mutate()`,
# and is meant for use with vectors rather than entire data frames
starwars %>%
select(name, eye_color) %>%
mutate(eye_color = na_if(eye_color, "unknown"))
# `na_if()` can also be used with `mutate()` and `across()`
# to alter multiple columns
starwars %>%
mutate(across(where(is.character), ~na_if(., "unknown")))
[Package dplyr version 1.1.4 Index]