У меня есть данные опроса, где одного респондента на домохозяйство спрашивали об возрасте и уровне образования каждого члена домохозяйства. Данные являются широкими, в том смысле, что есть индексированные столбцы для возраста и образования каждого члена домохозяйства.
Вот простой пример:
df <-
data.frame(
HHID = 1:2,
age_1 = c(4, 19),
yrsedu_1 = c(8,12),
age_2 = c(7, 6),
yrsedu_2 = c(14, 6)
)
Таким образом, age_1
- это возраст одного члена домохозяйства 1 и edu_2
- это уровень его образования.
По сути, я хочу составить пары столбцов (2 столбца на члена домохозяйства), чтобы получить длинный набор данных, подобный этому:
data.frame(
HHID = c(1,1,2,2),
hh_child_number = c(1,2,1,2),
age = c(4,7,19,6),
yrsedu = c(8,14,12,6))
Как я могу сделать это с gather
в tidyr
? Пары столбцов вызывают проблемы.