Я пытаюсь использовать spread
как часть пакета tidyr
.У меня есть один key
столбец (structure_type
) и четыре value
столбца.(structure_type
содержит три факторных уровня.) Вся документация, которую я видел, предполагает, что spread
может использоваться только для одного key
столбца и одного value
столбца.Но похоже, что это должно быть возможно сделать это.Возможно, мне лучше использовать библиотеку reshape
?
Этот ответ подошел близко, но я не смог его воспроизвести.
library(tidycensus)
library(tidyr)
units_str_puma <- get_acs(geography = 'public use microdata area', table = "B25024",
state = c('OR', 'WA'))
units_str2_puma <- units_str_puma %>%
mutate(structure_type = case_when(variable == "B25024_001" ~ "Total units",
variable %in% c("B25024_002", "B25024_003") ~ "One-unit structure",
TRUE ~ "Other")) %>%
group_by(structure_type, GEOID) %>%
summarize(units = sum(estimate),
units_moe = moe_sum(moe = moe, estimate = estimate),
units_cv = units_moe/1.645/units,
units_cv_flag = case_when(units_cv > 0.4 ~ 1,
TRUE ~ 0)) %>%
spread(key=structure_type, value=c(units, units_moe, units_cv, units_cv_flag), drop=FALSE)