# create random variable
dummy <- sample(1:8, 100, replace = TRUE)
# show value distribution
table(dummy)
# set value 1 and 8 as missings
dummy <- set_na(dummy, c(1, 8))
# show value distribution, including missings
table(dummy, useNA = "always")
# add named vector as further missing value
set_na(dummy, c("Refused" = 5))
# see different missing types
library(haven)
print_tagged_na(set_na(dummy, c("Refused" = 5)))
# create sample data frame
dummy <- data.frame(var1 = sample(1:8, 100, replace = TRUE),
var2 = sample(1:10, 100, replace = TRUE),
var3 = sample(1:6, 100, replace = TRUE))
# set value 2 and 4 as missings
library(dplyr)
dummy %>% set_na(c(2, 4)) %>% head()
dummy %>% set_na(c(2, 4)) %>% get_na()
dummy %>% set_na(c(2, 4)) %>% get_values()
# create list of variables
data(efc)
dummy <- list(efc$c82cop1, efc$c83cop2, efc$c84cop3)
# check original distribution of categories
lapply(dummy, table, useNA = "always")
# set 3 to NA
lapply(set_na(dummy, 3), table, useNA = "always")
# drop unused factor levels when being set to NA
x <- factor(c("a", "b", "c"))
x
set_na(x, "b")
set_na(x, "b", drop.levels = FALSE)
Run the code above in your browser using DataLab