Récupération des données

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")

Pré-traitement des données

Réannotation des pays pour une meilleure extraction des données

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"

Creation d’un sous jeu de données pour analyse des pays d’intérêts

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"))

transformation de la table pour faire les graphiques

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)

Fusion des lignes pour un même pays

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")]

Visualisation des données

Représentation du nombre de cas cumulés par jour par pays.

Reproduction du graphique en log10 :