Я пытаюсь рассчитать население моложе 20 лет по расе для каждого округа в Миннесоте, используя опрос американского сообщества в R. Используя Tidycensus, я знаю, что это можно сделать, используя переменные B01001H для каждой расы и возрастной группы в R. Однако мне нужно объединить все переменные для лиц моложе 20 лет для каждой расовой группы. Согласно этой веб-странице (https://www.census.gov/content/dam/Census/library/publications/2018/acs/acs_general_handbook_2018_ch08.pdf), в то время как агрегирование оценок представляет собой просто сумму значений каждой из подгрупп, агрегирование погрешности требует, чтобы я вычислил эта формула:
MOE = sqrt(moe_1^2 + moe_2^2 + ... + moe_n^2)
для каждого из МО в подгруппе. Итак, как именно я могу использовать tidyverse для точного расчета этого агрегированного значения MOE?
Вот как выглядит мой код до сих пор:
## age race
age_vars_male = c(w1="B01001H_003",w2="B01001H_004",w3="B01001H_005",w4="B01001H_006",
b1="B01001B_003",b2="B01001B_004",b3="B01001B_005",b4="B01001B_006",
AN1="B01001C_003",AN2="B01001C_004",AN3="B01001C_005",AN4="B01001C_006",
AS1="B01001D_003",AS2="B01001D_004",AS3="B01001D_005",AS4="B01001D_006",
H1="B01001I_003",H2="B01001I_004",H3="B01001I_005",H4="B01001I_006")
## obtaining variables listed above for MN counties
pop_un20 <- get_acs(geography = "county",
variables = age_vars_male,
state = "MN",
geometry=T)
pop_un20 = pop_un20 %>% mutate(Race = case_when(variable %in% c("w1","w2","w3","w4") ~ "White",
variable %in% c("b1","b2","b3","b4") ~ "Black",
variable %in% c("AN1","AN2","AN3","AN4") ~"AI/AN",
variable %in% c("AS1","AS2","AS3","AS4") ~"Asian",
variable %in% c("H1","H2","H3","H4") ~"Hispanic/Latino"),
moe_sqrd = moe^2) %>% select(-variable)
moe_aggregate = pop_un20 %>% group_by(NAME,Race) %>% summarise(moe_aggregate = sqrt(sum(moe_sqrd,na.rm = T))) %>% st_set_geometry(NULL)
est_aggregate = pop_un20 %>% group_by(NAME,Race) %>% summarise(estimate_aggregate = sum(estimate,na.rm = T)) %>% st_set_geometry(NULL)
pop_under20 = pop_un20 %>% right_join(moe_aggregate, by = c("NAME","Race")) %>% right_join(est_aggregate, by = c("NAME","Race")) %>%
select(-estimate,-moe,moe_sqrd)
Я рассчитал то, что запросил, сначала создав столбец для моэ в квадрате, а затем взяв квадратный корень из суммы для каждой группы и расы. Однако есть ли способ сделать это за один раз?