Я анализирую набор данных с конкретной демографической информацией.Вот основные переменные, которые я пытаюсь изменить и подмножество:
hh_id is_head_of_household married gender age
1 1 single male 28
1 0 single female 27
2 1 married male 33
2 0 married female 34
2 1 single male 6
Мне нужно создать переменную, которая указывает тип домашнего хозяйства по этим четырем конкретным категориям: «один глава семьи - мужчина», «одиндомашнее хозяйство женского пола "," семейная пара "," не состоящая в браке пара "
Например, каждое домашнее хозяйство имеет уникальный идентификационный номер, а первое домашнее хозяйство представляет собой пару, не состоящую в браке, поскольку как минимум двое взрослых (18 лет и старше) и по крайней мере один из них является главой семьи (1 или 0) и оба указаны как "холостые" в колонке о браке.Второе домашнее хозяйство - супружеская пара, потому что есть по крайней мере двух взрослых, один из которых является главой, и они перечислены как "замужем" в колонке о браке.В домохозяйстве, состоящем из "одного мужчины" или "одинокой женщины", СОСТОИТСЯ один взрослый мужчина или женщина, который также является главой домохозяйства.Любые другие люди в семье должны быть детьми (до 18 лет).
Я попытался создать столбец, который бы указывал одну из этих четырех категорий для КАЖДОГО УНИКАЛЬНОГО идентификатора домохозяйства, используя dplyr:
Сначала я создал категорию для взрослых или детей:
individual_data["adult"] <- NA
individual_data$adult <- ifelse(individual_data$age >= 18, "adult",
"child")
Это код, который у меня есть для попытки создать переменную для отдельных домохозяйств:
individual_data["if_adult"] <- ifelse(individual_data$age >= 18, "1","0")
library(dplyr)
individual_data %>%
group_by(hh_id) %>%
mutate(unmarried_couple = sum(if_adult*(married =="Single"))==1,
total_adults = sum(if_adult))
Этот код не дает ожидаемых результатов, и я не уверен, как поступить с созданием двух другихкатегории.В идеале мой новый набор данных должен выглядеть так:
hh_id is_head_of_household married gender age type
1 1 single male 28 unmarried couple
1 0 single female 27 unmarried couple
2 1 married male 33 married couple
2 0 married female 34 married couple
2 1 single male 6 married couple
..
n ----------------------------------------------------------
Должна быть ОДНА классификация для КАЖДОГО hh_id.Как я могу найти решение этой проблемы в dplyr?
структура данных:
structure(list(hh_id = c(1L, 1L, 2L, 2L, 2L, 3L, 3L, 4L, 4L,
5L), person_id = 1:10, is_head_of_household = c(1L, 0L, 1L, 0L,
0L, 1L, 0L, 1L, 0L, 1L), married = structure(c(2L, 2L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Married", "Single"), class = "factor"),
gender = structure(c(2L, 5L, 2L, 5L, 5L, 2L, 5L, 2L, 3L,
2L), .Label = c("F", "Female", "FEMALE", "M", "Male", "MALE"
), class = "factor"), race = structure(c(3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L), .Label = c("Asian", "Black", "White"
), class = "factor"), age = c(28L, 27L, 34L, 33L, 6L, 28L,
29L, 30L, 3L, 30L), voted_in_2012 = c(0L, 1L, 0L, 1L, 0L,
0L, 1L, 0L, 0L, 1L), is_college_graduate = c(1L, 1L, 1L,
0L, 1L, 1L, 0L, 1L, 0L, 1L), adult = c("adult", "adult",
"adult", "adult", "child", "adult", "adult", "adult", "child",
"adult")), row.names = c(NA, 10L), class = "data.frame")