SE проблема с условной мутацией
Я пытаюсь сделать простой условный с мутацией.
Код должен создать новую переменную под названием "пол", основанную на двух переменных из одного и того же кадра данных.
sample <- data.frame(
client = c("john", "peter", "hanna", "lisa"),
id = c(100, 400, 650, 700),
resident = c('YES', 'YES', 'YES', 'NO'))
male_index <- as.vector(000:499)
female_index <- as.vector(500:999)
sample <- sample %>%
mutate(gender = ifelse(resident == "YES" & id %in% male_index, "Male",
mutate(gender = ifelse(resident == "YES" & id %in% female_index, "Female", "Female"))))
Я получаю следующую ошибку, которую я не понимаю. Я думаю, это как-то связано с SE. Но я все еще не очень знаком с Р.
Ошибка в mutate_impl(.data, точки):
Аргумент ".data" отсутствует, по умолчанию нет
У меня не возникает проблем, если я запускаю код с помощью одного оператора mutate.
1 ответ
Решение
Вам не нужно второе mutate
позвоните в ваш ifelse
,
sample <- data.frame(
client = c("john", "peter", "hanna", "lisa"),
id = c(100, 400, 650, 700),
resident = c('YES', 'YES', 'YES', 'NO')
)
male_index <- as.vector(000:499)
female_index <- as.vector(500:999)
sample <- sample %>%
mutate(gender = ifelse(
resident == "YES" & id %in% male_index,
"Male",
ifelse(resident == "YES" &
id %in% female_index, "Female", "Non-resident")
))
Теперь каждому человеку в наборе данных присвоено значение для gender
,
sample
# client id resident gender
#1 john 100 YES Male
#2 peter 400 YES Male
#3 hanna 650 YES Female
#4 lisa 700 NO Non-resident