#----- Johns Hopkins CSSE data repository -----
# https://pastebin.com/g8BTSmwN
# https://github.com/CSSEGISandData/COVID-19
# https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_daily_reports
# https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/03-15-2020.csv
# https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series
# https://datahub.io/JohnSnowLabs/population-figures-by-country
#library(data.table)
library(tidyverse)
library(lubridate)
setwd("C:/Users/brian.dill/Downloads/")
setwd("C:/Users/bdill/Downloads/")
#----- Read in data -----
jhconfirmed <- read.csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv")
jhdeaths <- read.csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Deaths.csv")
jhrecovered <- read.csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Recovered.csv")
jhcountries <- jhconfirmed %>% select(Province.State, Country.Region, Lat, Long)
names(jhcountries) <- c("Province", "Country", "Lat", "Long")
#----- data wrangle -----
jhconfirmed2 <- select(jhconfirmed, -Lat, -Long) %>%
gather(key = "date", value = "confirmed", -Province.State, -Country.Region)
jhconfirmed2$date <- str_replace(jhconfirmed2$date, "X", "")
jhconfirmed2$date <- mdy(jhconfirmed2$date)
names(jhconfirmed2) <- c("Province", "Country", "Date", "Confirmed")
jhdeaths2 <- select(jhdeaths, -Lat, -Long) %>%
gather(key = "date", value = "deaths", -Province.State, -Country.Region)
jhdeaths2$date <- str_replace(jhdeaths2$date, "X", "")
jhdeaths2$date <- mdy(jhdeaths2$date)
names(jhdeaths2) <- c("Province", "Country", "Date", "Deaths")
jhrecovered2 <- select(jhrecovered, -Lat, -Long) %>%
gather(key = "date", value = "recovered", -Province.State, -Country.Region)
jhrecovered2$date <- str_replace(jhrecovered2$date, "X", "")
jhrecovered2$date <- mdy(jhrecovered2$date)
names(jhrecovered2) <- c("Province", "Country", "Date", "Recovered")
# head(jhrecovered2)
jh <- inner_join(jhconfirmed2, jhdeaths2) %>%
inner_join(jhrecovered2) %>%
arrange(Country, Province, desc(Date))
head(jh)
jh_gis <- inner_join(jh, jhcountries)
jh_country <- jh %>%
group_by(Country, Date) %>%
summarize(Confirmed = sum(Confirmed),
Deaths= sum(Deaths),
Recovered = sum(Recovered)) %>%
arrange(Country, desc(Date))
#----- Save csv files -----
write_csv(jh, path = paste0(getwd(), "/covid19_jh_timeseries.csv"))
write_csv(jh_country, path = paste0(getwd(), "/covid19_jh_country_timeseries.csv"))
write_csv(jhcountries, path = paste0(getwd(), "/covid19_jh_country_lat_long.csv"))
write_csv(jh_gis, path = paste0(getwd(), "/covid19_jh_timeseris_with_latlong.csv"))
#----- graphs -----
#----- China by province -----
jh %>%
filter(Country %in% c("China")) %>%
ggplot(aes(x = Date, y = Confirmed, color = Province)) +
geom_line() +
labs(title = "Confirmed covid-19 cases by Province in China",
subtitle = "Data Repository by Johns Hopkins CSSE",
caption = "Source: https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series")
ggsave(filename = paste0(getwd(), "/covid19_by_china_province.png"), width = 10, height = 6, dpi = 120)
#----- Top countries -----
jh_country %>%
filter(Country %in% c("Italy", "Iran", "US", "Spain", "Germany", "China")) %>%
ggplot(aes(x = Date, y = Confirmed, color = Country)) +
geom_line() +
scale_y_log10(limits = c(1, 100000)) +
labs(title = "Confirmed covid-19 cases by Country",
subtitle = "Data Repository by Johns Hopkins CSSE",
caption = "Source: https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series")
ggsave(filename = paste0(getwd(), "/covid19_cases_by_country.png"), width = 10, height = 6, dpi = 120)
jh_country %>%
filter(Country %in% c("Italy", "Iran", "US", "Spain", "Germany", "China")) %>%
ggplot(aes(x = Date, y = Deaths, color = Country)) +
geom_line() +
scale_y_log10(limits = c(10, 10000)) +
labs(title = "Confirmed covid-19 Deaths by Country",
subtitle = "Data Repository by Johns Hopkins CSSE",
caption = "Source: https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series")
ggsave(filename = paste0(getwd(), "/covid19_deaths_by_country.png"), width = 10, height = 6, dpi = 120)
ggsave(filename = paste0(getwd(), "/covid19_by_country.png"), width = 10, height = 6, dpi = 120)
jh_country %>% filter(Country %in% c("Italy", "Iran", "US", "Spain", "Germany", "China")) %>% arrange(desc(Date), Country)
#----- Country populations -----
country_pop <-read_csv("https://datahub.io/JohnSnowLabs/population-figures-by-country/r/population-figures-by-country-csv.csv")
country_pop2 <- country_pop %>%
select(Country, pop = Year_2016) %>%
mutate(Country = case_when(Country == "United States" ~ "US",
Country == "Iran, Islamic Rep." ~ "Iran",
TRUE ~ Country))
#----- daily update v population -----
jh_daily <- read_csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/03-21-2020.csv")
names(jh_daily) <- c("Province", "Country", "Date", "Confirmed", "Deaths", "Recovered", "Lat", "Long")
countries_of_interest <- c("US", "Italy", "China", "Canada", "Iran", "United Kingdom", "Germany", "France", "Spain", "Switzerland")
jh_daily %>%
#filter(Country %in% countries_of_interest ) %>%
group_by(Country) %>%
summarise(Confirmed = sum(Confirmed), Deaths = sum(Deaths)) %>%
inner_join(country_pop2) %>%
filter(pop > 1000000) %>%
mutate(PopMillions = round(pop / 1000000, digits = 1),
ConfirmedPerMill = round(Confirmed / PopMillions, digits = 1),
DeathsPerMill = round(Deaths / PopMillions, digits = 1),
MortalityRate = round((Deaths / Confirmed)*100, digits = 1)) %>%
select(Country, PopMillions, Confirmed, ConfirmedPerMill, Deaths, DeathsPerMill, MortalityRate) %>%
arrange(desc(ConfirmedPerMill)) %>%
top_n(50) %>%
write_csv(path = paste0(getwd(), "/covid19_high_confirmed_per_pop.csv"))
Comments
0 B
|0 👍
/0 👎
0 B
|👍
/👎