Get / Set SPSS missing values
Get / Set SPSS missing values
na_values(x) na_values(x) <- value na_range(x) na_range(x) <- value set_na_values(.data, ..., .values = NA, .strict = TRUE) set_na_range(.data, ..., .values = NA, .strict = TRUE) user_na_to_na(x)
x |
A vector. |
value |
A vector of values that should also be considered as missing
(for |
.data |
a data frame |
... |
name-value pairs of missing values (see examples) |
.values |
missing values to be applied to the data.frame,
using the same syntax as |
.strict |
should an error be returned if some labels
doesn't correspond to a column of |
See haven::labelled_spss() for a presentation of SPSS's user defined missing values.
Note that base::is.na() will return TRUE for user defined missing values.
You can use user_na_to_na() to convert user defined missing values to NA.
na_values() will return a vector of values that should also be considered as missing.
na_range() will return a numeric vector of length two giving the (inclusive)
extents of the range.
set_na_values() and set_na_range() will return an updated
copy of .data.
set_na_values() and set_na_range() could be used with dplyr syntax.
v <- labelled(c(1,2,2,2,3,9,1,3,2,NA), c(yes = 1, no = 3, "don't know" = 9))
v
na_values(v) <- 9
na_values(v)
v
is.na(v)
user_na_to_na(v)
na_values(v) <- NULL
v
na_range(v) <- c(5, Inf)
na_range(v)
v
user_na_to_na(v)
if (require(dplyr)) {
# setting value labels
df <- tibble(s1 = c("M", "M", "F", "F"), s2 = c(1, 1, 2, 9)) %>%
set_value_labels(s2 = c(yes = 1, no = 2)) %>%
set_na_values(s2 = 9)
na_values(df)
# removing missing values
df <- df %>% set_na_values(s2 = NULL)
df$s2
}Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.