Чтобы ответить на этот вопрос, необходимо объединить источник данных о населении на уровне штата США с фреймом данных, содержащим событие по данным штата. К счастью, налогоплательщики Соединенных Штатов заплатили за сбор этой информации за счет средств Бюро переписи населения США.
Мы будем использовать оценки численности населения США за 2019 год от Бюро переписей США, которые включены в набор данных оценки численности населения на уровне штата с 2010 по 2019 гг. на миллион населения.
Сначала мы загружаем данные о населении США, которые выглядят следующим образом.
введите описание изображения здесь
popData <- "https://www2.census.gov/programs-surveys/popest/tables/2010-2019/state/totals/nst-est2019-01.xlsx"
download.file(popData,
"./data/nst-est2019-01.xlsx",mode="wb")
Затем мы загружаем данные о населении, присваиваем имена столбцам и сохраняем оценку за июль 2019 года. Мы пропускаем первые несколько строк данных, которые представляют собой сводные строки для всего США и агрегированных регионов штатов, а также последнюю строку, которая содержит данные для Пуэрто-Рико.
library(readxl)
colNames <- c("state","census2010","est_base",paste0("est_",2010:2019))
usPopEst <- read_excel("./data/nst-est2019-01.xlsx",
range="A10:M60",
col_names = colNames)[c(1,13)]
usPopEst$state <- gsub("\\.","",usPopEst$state)
Теперь мы читаем COVID -19 данных по состоянию на 20 июня 2020 г. из моей разветвленной версии репозитория JHU CCSE COVID-19 на Github.
# read covid-19 data for June 20th
covidFile <- "https://raw.githubusercontent.com/lgreski/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/06-20-2020.csv"
covidData <- read.csv(covidFile,
header=TRUE)
Поскольку данные COVID-19 находятся на уровне округа / почтового индекса, нам необходимо агрегировать до государственного уровня. Затем мы объединим его с оценками населения и вычислим коэффициенты заболеваемости на миллион населения.
# aggregate stats to state level
library(dplyr)
covidData %>% filter(Country_Region == "US") %>%
rename(state = Province_State) %>%
group_by(state) %>%
summarise(Confirmed = sum(Confirmed),
Deaths = sum(Deaths)) %>%
inner_join(.,usPopEst) %>%
mutate(confirmed_per_million = Confirmed / (est_2019 / 1000000),
death_per_million = Deaths / (est_2019 / 1000000)) -> summedStates
head(summedStates)
... и выведем:
> head(summedStates)
# A tibble: 6 x 6
state Confirmed Deaths est_2019 confirmed_per_million death_per_million
<chr> <int> <int> <dbl> <dbl> <dbl>
1 Alabama 29549 838 4903185 6026. 171.
2 Alaska 741 12 731545 1013. 16.4
3 Arizona 50127 1346 7278717 6887. 185.
4 Arkansas 15142 224 3017804 5018. 74.2
5 California 175213 5494 39512223 4434. 139.
6 Colorado 30333 1647 5758736 5267. 286.
>