library(tidyverse)
library(growthrates)
library(forecast)
library(sandwich)
pkgload::load_all()
# don't model on the 2 most recent days as data might not be complete due to reporting delays
use_date <- max(df_ecdc$date) - 2
trend_data <- df_ecdc %>% dplyr::filter(date <= use_date)
model_cnt_cases_linear <- make_model_cnt_linear(df = trend_data, series = 'cases', time_unit_extent = 12, min_sum = 30)
model_cnt_deaths_linear <- make_model_cnt_linear(df = trend_data, series = 'deaths', time_unit_extent = 12, min_sum = 30)
o_vars <- c("coeff", "lwr", "upr")
l_cnt_vars <- setNames(as.vector(o_vars), paste0('l_cnt_', o_vars))
df_cases <- rename(model_cnt_cases_linear[[3]] , all_of(l_cnt_vars)) %>%
mutate(
trend_linear = case_when(
l_cnt_lwr > 0 ~ "increasing",
l_cnt_upr < 0 ~ "declining",
l_cnt_upr > 0 & l_cnt_lwr < 0 ~ "stable",
TRUE ~ NA_character_) %>%
factor(levels = c('increasing', 'stable','declining'),
labels = c('Increasing', 'Stable','Declining'))
) %>%
select(iso_a3, trend_cases = trend_linear)
df_deaths <- rename(model_cnt_deaths_linear[[3]] , all_of(l_cnt_vars)) %>%
mutate(
trend_linear = case_when(
l_cnt_lwr > 0 ~ "increasing",
l_cnt_upr < 0 ~ "declining",
l_cnt_upr > 0 & l_cnt_lwr < 0 ~ "stable",
TRUE ~ NA_character_) %>%
factor(levels = c('increasing', 'stable','declining'),
labels = c('Increasing', 'Stable','Declining'))
) %>%
select(iso_a3, trend_deaths = trend_linear)
df_trends <- distinct(df_ecdc, continent, region, country, iso_a3) %>%
inner_join(full_join(df_cases, df_deaths))
usethis::use_data(df_trends, overwrite = TRUE)
if (Sys.info()["nodename"] == "Pauls-MacBook-Pro.local") {
df_trends %>%
select(iso = iso_a3, trend = trend_cases) %>%
write_csv(paste0("~/MSF/GIS @ MSF - EPI csv data/epi-case-trends-", Sys.Date(), ".csv"))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.