Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mikkelkrogsholm/1ed3b7b3629f9f4023ec859b75a848a3 to your computer and use it in GitHub Desktop.
Save mikkelkrogsholm/1ed3b7b3629f9f4023ec859b75a848a3 to your computer and use it in GitHub Desktop.
Code for comparing danish covid deaths with others deaths
library(tidyverse)
library(lubridate)
# JH Data
newnames <- c("province", "country", "lat", "lon")
url_global_deaths = "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv"
global_deaths_raw <- read_csv(url_global_deaths)
names(global_deaths_raw)[1:4] <- newnames
global_deaths <- global_deaths_raw %>%
gather(date, deaths, -newnames) %>%
mutate(date = lubridate::mdy(date)) %>%
group_by(country, province, lat, lon) %>%
arrange(date) %>%
mutate(new_deaths = deaths - lag(deaths)) %>%
ungroup()
deaths <- global_deaths %>%
filter(country == "Denmark", is.na(province)) %>%
select(date, covid = new_deaths)
# SST Data
url <- "https://api.statbank.dk/v1/data/DODC1/CSV?Tid=*"
data_raw <- read_csv2(url)
data = data_raw %>%
set_names(c("date", "deaths")) %>%
mutate(date = date %>% str_replace_all("M|D", "-"),
date = date %>% ymd(),
y = year(date),
m = month(date),
d = day(date)) %>%
group_by(y) %>%
mutate(doy = 1:n()) %>%
ungroup()
# Combine data
pd = data %>%
left_join(deaths) %>%
mutate(deaths_no_covid = ifelse(is.na(covid), deaths, deaths - covid)) %>%
mutate(covid_rm = c(rep(NA, 3), # Adding a rolling mean
zoo::rollmean(x = covid, k = 7),
rep(NA, 3))) %>%
mutate(deaths_no_covid_rm = c(rep(NA, 3), # Adding a rolling mean
zoo::rollmean(x = deaths_no_covid, k = 7),
rep(NA, 3)))
death_minmax <- pd %>%
filter(y != 2020) %>%
group_by(doy) %>%
summarise(mindeaths = min(deaths_no_covid_rm, na.rm = T),
maxdeaths = max(deaths_no_covid_rm, na.rm = T),
avgdeaths = mean(deaths_no_covid_rm, na.rm = T)) %>%
ungroup()
bardata = pd %>%
filter(y == 2020) %>%
select(doy, covid_rm, deaths_no_covid_rm)
# gather(type, count, -doy) %>%
# drop_na()
# Plot the data
ggplot() +
geom_ribbon(data = death_minmax, aes(x = doy, ymin = 0, ymax = maxdeaths), fill = "lightgrey") +
geom_ribbon(data = bardata, aes(x = doy, ymin = 0, ymax = deaths_no_covid_rm), fill = "blue") +
geom_ribbon(data = bardata, aes(x = doy, ymin = deaths_no_covid_rm, ymax = deaths_no_covid_rm + covid_rm), fill = "red") +
# geom_line(data = death_minmax, aes(x = doy, y = mindeaths)) +
# geom_line(data = death_minmax, aes(x = doy, y = maxdeaths)) +
geom_line(data = death_minmax, aes(x = doy, y = avgdeaths), color = "white", linetype = "dashed") +
theme_minimal() +
labs(y = "Døde per dag i Danmark",
x = "Årets dage",
caption = "Kilde: Danmarks Statistik (tabel: DODC1) og Johns Hopkins University (https://github.com/CSSEGISandData/COVID-19)",
title = "Døde per dag i Danmark",
subtitle = "
Den bagvedliggende grå farve er det maksimale dødstal registreret på den pågældende dag siden 2007.
Den blå farve er antal døde i Danmark i 2020, der IKKE er døde 'med COVID'.
Den røde farve er antal døde i Danmark i 2020, der er døde 'med COVID'.
Den hvide linje er gennemsnitsdødstallet på den pågældende dag siden 2007.")
h = 5
w = h * 1.61803398875
ggsave("deaths_dk2.png", width = w, height = h)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment