Advertisement
MetricT

CFR Example, US

Jul 6th, 2020
3,815
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.95 KB | None | 0 0
  1. lag_us <- 7
  2.  
  3. cases <-
  4.   read.csv("../nytimes_covid-19-data/us-states.csv") %>%
  5.   as_tibble() %>%
  6.   mutate(date = as.Date(date)) %>%
  7.   select(date, state, cases) %>%
  8.   arrange(date, state) %>%
  9.   pivot_wider(id_cols = c("date"), names_from = c("state"), values_from = c("cases")) %>%
  10.   replace(., is.na(.), 0) %>%
  11.   mutate(total = rowSums(select(., !contains("date")))) %>%
  12.   select(date, total) %>%
  13.   rename(total_cases = total) %>%
  14.   mutate(new_cases = c(1, diff(total_cases))) %>%
  15.   select(date, new_cases)
  16.  
  17. deaths <-
  18.   read.csv("../nytimes_covid-19-data/us-states.csv") %>%
  19.   as_tibble() %>%
  20.   mutate(date = as.Date(date) - lag_us) %>%
  21.   select(date, state, deaths) %>%
  22.   arrange(date, state) %>%
  23.   pivot_wider(id_cols = c("date"), names_from = c("state"), values_from = c("deaths")) %>%
  24.   replace(., is.na(.), 0) %>%
  25.   mutate(total = rowSums(select(., !contains("date")))) %>%
  26.   select(date, total) %>%
  27.   rename(total_deaths = total) %>%
  28.   mutate(new_deaths = c(0, diff(total_deaths))) %>%
  29.   select(date, new_deaths)
  30.  
  31. data_cfr <-
  32.   cases %>%
  33.   left_join(deaths, by = "date") %>%
  34.   mutate(cfr_us = new_deaths / new_cases) %>%
  35.   mutate(cfr_us = ifelse(is.finite(cfr_us), cfr_us, NA)) %>%
  36.   mutate(cfr_us_trend = ts(cfr_us, frequency = 7) %>% mstl() %>% trendcycle) %>%
  37.   mutate(cfr_us_trend = ifelse(is.na(cfr_us), NA, cfr_us_trend)) %>%
  38.   filter(date >= as.Date("2020-04-01"))
  39.  
  40. g_cfr <-
  41.   ggplot(data = data_cfr) +
  42.   theme_classic() +
  43.   theme(axis.text.x = element_text(angle = 45)) +
  44.   theme(axis.text.x = element_text(vjust = 0.7)) +
  45.   theme(axis.text.x = element_text(hjust = 0.8)) +
  46.   theme(legend.title = element_blank()) +
  47.   #theme(legend.position = "none") +
  48.  
  49.   geom_line(size = 1.0,  aes(x = as.Date(date), y = cfr_us_trend, color = "USA")) +
  50.  
  51.   scale_x_date(date_labels = "%m/%d") +
  52.   labs(title = "Case Fatality Rate in the US", x = "Date", y = "Case Fatality Rate") +
  53.   scale_y_continuous(labels = scales::percent)
  54. print(g_cfr)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement