У меня есть стек широких (ish) фреймов данных, представленных в одной электронной таблице. Данные представляют собой подсчет голосов для различных политических партий в деревнях, расположенных в районах. Вот как они выглядят:
df_in <- data.frame(
X1 = c(rep("District1", 4), rep("District2", 3)),
X2 = c("Party", "PartyA", "PartyB", "PartyC", "Party", "PartyA", "PartyB"),
X3 = c("Village1", "44", "12", "3", "Village3", "7", "88"),
X4 = c("Village2", "34", "19", "2", "Village4", "90", "65"),
X5 = c("", "", "", "", "Village5", "45", "62")
)
Я хочу сделать длинный набор данных подсчета голосов в деревне / партии, который будет выглядеть следующим образом:
df_out <- data.frame(
district = c(rep("District1", 6), rep("District2", 6)),
village = c(rep("Village1", 3), rep("Village2", 3), rep("Village3", 2), rep("Village4", 2), rep("Village5", 2)),
party = c(rep(c("PartyA", "PartyB", "PartyC"), 2), rep(c("PartyA", "PartyB"), 3)),
votes = c(44, 12, 3, 34, 19, 2, 7, 88, 90, 65, 45, 62)
)
Я ищу способ получить от df_in
до df_out
в одной трубе (поскольку у меня много таблиц, похожих на эту).