Le fichier est téléchargé à partir de l’url https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv puis lu via la fonction fread pour avoir un objet de type data.table afin de faire facilement des graphiques avec ggplot2. Le nom des colonnes est vérifié pour remplacer les caractères spéciaux par des “.”.
url <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"
destfile <- "./time_series_covid19_confirmed_global.csv"
download.file(url, destfile)
covid_data <- fread(destfile, sep = ",", h = T, check.names=FALSE)
setnames(covid_data, "Country/Region", "Country.Region")
setnames(covid_data, "Province/State", "Province.State")
On commence par réannoter les pays pour mieux extraire ceux d’intérêts : - la province de Hong Kong prend pour nom de pays China, Hong-Kong - la france hors DOM-TOM est renommée France Metropolitaine - les colonies des pays bas sont renommées Netherlands, colonies
## change China to China, Hong Kong for Hong Kong
covid_data[covid_data$Country.Region == "China" & covid_data$Province.State == "Hong Kong", ]$Country.Region <- "China, Hong-Kong"
## change France into France Metropolitaine
covid_data[covid_data$Country.Region == "France" & covid_data$Province.State == "", ]$Country.Region <- "France Metropolitaine"
## Filter Netherlands colonies
covid_data[covid_data$Country.Region == "Netherlands" & covid_data$Province.State != "", ]$Country.Region <- "Netherlands, colonies"
## Filter UK colonies
covid_data[covid_data$Country.Region == "United Kingdom" & covid_data$Province.State != "", ]$Country.Region <- "United Kingdom, colonies"
Création d’un sous jeu de données avec les pays d’intérêts.
## Filter only countries of interest
covid.subset <- filter(covid_data, Country.Region %in% c("Belgium","China","China, Hong-Kong", "France","Germany","Iran","Italy", "Japan","Korea, South","Netherlands","Portugal","Spain", "United Kingdom", "US"))
Ce sera plus facile et rapide pour l’utilisation de ggplot2 d’avoir tous les comptages regroupés dans une colonne par date. L’idée est donc d’avoir une colonne “Date” et les comptages dans une autre colonne “Case_number”.
Pour cela nous utilisons fonction melt.
covid.subset <- melt(covid.subset ,
id.vars = c("Province.State", "Country.Region", "Lat", "Long"),
variable.name = "Date",
value.name = "Case_number")
covid.subset$Date <- as.Date(covid.subset$Date, format = "%m/%d/%y")
covid.subset$Date <- as.factor(covid.subset$Date)
covid.subset$Country.Region <- as.factor(covid.subset$Country.Region)
Afin de n’avoir qu’une valeur par pays, nous fusionnons les lignes
covid.byCountry <- covid.subset[, list(Case_number=sum(Case_number)),by=c("Country.Region","Date")]
Représentation du nombre de cas cumulés par jour par pays.
Reproduction du graphique en log10 :