Я пытаюсь создать новую переменную в наборе данных при некоторых условиях других переменных. По сути, я хочу упростить информацию об образовании родителей, которая разделена между отцом и матерью, и создать новую, которая учитывает самый высокий уровень образования родителей. Например, если уровень образования отца равен 1, а уровень образования матери равен 0, значение для этой строки в новой переменной будет равно 1.
Я пытаюсь использовать mutate()
с case_when()
функциями, это работало в другой переменной, но я не понимаю, почему не сейчас. Когда я пытаюсь, он создает столбец только с NA, и когда я печатаю из него таблицу, результат:
<таблица экстентов 0>
Класс из двух переменных, которые я использую для условий, это 'обозначено' и 'фактор'.
Сначала я попробовал следующую команду (я упрощаю коды):
dataset <- dataset %>%
mutate(NEW_EDUCATIONAL_VAR = case_when(MOTHER_EDUCATIONAL_VAR == '0' & FATHER_EDUCATIONAL_VAR == '0' ~ '0',
MOTHER_EDUCATIONAL_VAR == '0' & FATHER_EDUCATIONAL_VAR == '1' ~ '1')
Затем я попытался рассмотреть случаи, в которых есть значения NA, поскольку в некоторых строках есть NA:
dataset <- dataset %>%
mutate(NEW_EDUCATIONAL_VAR = case_when(is.na(MOTHER_EDUCATIONAL_VAR) & is.na(FATHER_EDUCATIONAL_VAR) ~ '99',
MOTHER_EDUCATIONAL_VAR == '0' & FATHER_EDUCATIONAL_VAR == '1' ~ '1')
Когда я использовал эти функции для создания новой для возраста случаев, это сработало ,
dataset <- dataset %>% mutate(AGE_CAT = case_when(AGE >= 16 & AGE <= 18 ~ '0',
AGE >= 19 & AGE <= 24 ~ '1',
AGE >= 25 & AGE <= 29 ~ '2',
AGE >= 30 ~ '3'))
Итак, что я делаю не так? Большое спасибо.