Turn <NA> in categorical variables into "(Missing)";
numeric variables will be converted to categorical variables where numeric
values as "(Observed)" and NA as "(Missing)".
Value
original dataframe containing new columns of the converted variables for the missing values with tidyverse code attached
Examples
missing <- missing_to_cat(iris, vars = c("Species", "Sepal.Length"))
cat(code(missing))
#> iris |> dplyr::mutate(Species.miss = forcats::fct_na_value_to_level(Species, "(Missing)"), .after = Species) |> dplyr::mutate(Sepal.Length.miss = factor( dplyr::case_match(Sepal.Length, NA ~ "(Missing)", .default = "(Observed)")), .after = Sepal.Length)
head(missing)
#> Sepal.Length Sepal.Length.miss Sepal.Width Petal.Length Petal.Width Species
#> 1 5.1 (Observed) 3.5 1.4 0.2 setosa
#> 2 4.9 (Observed) 3.0 1.4 0.2 setosa
#> 3 4.7 (Observed) 3.2 1.3 0.2 setosa
#> 4 4.6 (Observed) 3.1 1.5 0.2 setosa
#> 5 5.0 (Observed) 3.6 1.4 0.2 setosa
#> 6 5.4 (Observed) 3.9 1.7 0.4 setosa
#> Species.miss
#> 1 setosa
#> 2 setosa
#> 3 setosa
#> 4 setosa
#> 5 setosa
#> 6 setosa