--- title: "Autour du SARS-CoV-2 (Covid-19)" author: "Sylvere Kezeta-Bondja" date: "13 fevrier 2025" output: html_document --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` ## Préparation des données Les données sur l'incidence par pays du Covid-19 que nous allons utiliser sont celles compilées par [Johns Hopkins University Center for Systems Science and Engineering (JHU CSSE)](https://systems.jhu.edu/). Nous les récupérons sous forme d'un fichier en format CSV dont chaque ligne correspond à un pays (région) bien précis(e). Nous téléchargeons toujours le jeu de données complet, qui commence le 22 janvier 2020 et se termine 9 mars 2023. L'URL est: ```{r} data_url = "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv" ``` Pour nous protéger contre une éventuelle disparition ou modification du serveur du JHU CSSE, nous faisons une copie locale de ce jeu de données que nous préservons avec notre analyse. Il est inutile et même risquée de télécharger les données à chaque exécution, car dans le cas d'une panne nous pourrions remplacer nos données par un fichier défectueux. Pour cette raison, nous téléchargeons les données seulement si la copie locale n'existe pas. ```{r} data_file = "Covid-19.csv" if (!file.exists(data_file)) { download.file(data_url, data_file, method="auto") } ``` Voici l'explication sur ce jeu de données contenue [sur le site d'origine](https://github.com/CSSEGISandData/COVID-19/blob/master/csse_covid_19_data/csse_covid_19_time_series/README.md): Ce jeu de donnés chronologiques concerne les cas confirmés de Covid-19 enregistrés dans le monde. Les données de l'Australie, du Canada et de la Chine ont été enregistrées au niveau de leurs provinces/états respectifs. Les colonies des Pays-Bas, de la Grande-Bretagne, de la France et du Danemark ont été enregistrées au niveau de province/état. Les données des Etats-Unis et autres pays ont été enregistrées au niveau du pays. | Nom de colonne | Libellé de colonne | |----------------+-----------------------------------------------------------------------------------------------------------------------------------| | `Province/State` | province/état particulier d'un pays donné | | `Country/Region` | Nom d'un(e) pays/région donné(e) | | `lat` | Coordonnées de la latitude du pays donné | | `long` | Coordonnées de la longitude du pays donné | les autres colonnes correspondent aux données journalieres du nombre de cas de Covid-19 enregistrés. #La première ligne du fichier CSV est un commentaire, que nous ignorons en précisant `skip=1`. ### Lecture des données ```{r} data = read.csv(data_file) ``` Regardons ce que nous avons obtenu: ```{r} head(data) tail(data) ``` Y a-t-il des points manquants dans nos données ? ```{r} na_records = apply(data, 1, function (x) any(is.na(x))) data[na_records,] ``` Les colonnes qui nous intéressent sont celles situées a partir de la cinquieme. Vérifions leurs classes: ```{r} # Sélectionner les colonnes d'intérêt Num_Col_Debut_Epidemie <- which(colnames(data) == "X1.22.20") Num_Col_Fin_Epidemie <-which(colnames(data) == "X3.9.23") colonnes_interet <- Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie # Vérifier le type de chaque colonne for (colonne in colonnes_interet) { if (class(data[[colonne]]) != "integer") { print(paste("La colonne", colonne, "n'est pas de type integer.")) } } ``` C'est bon toutes mes données sont entieres. ### Inspection des données Regardons enfin à quoi ressemblent nos données pour un pays précis (Cameroun). ```{r} ## Sélectionner la ligne correspodant au Cameroun #Country <- "Cameroon" L <- which(data$Country.Region == "Cameroon") L ##Sélectionner les données de la ligne L (correspondant au Cameroun) pour différentes périodes #nous allons considérer la période allant du 22 janvier 2020 au 09 mars 2020, car durant celle-ci l'épidemie est encore a sa phase initiale Num_Col_Debut_2021 <-which(colnames(data) == "X3.9.20") ligne_Country_annee0 <- data[L, Num_Col_Debut_Epidemie:Num_Col_Debut_2021] index_Country_annee0 <- 1:length(ligne_Country_annee0) #nous choississons la période du 10 mars 2020 au 09 mars 2021, comme étant l'année 1 de l'épidemie Num_Col_Debut_2022 <- which(colnames(data)== "X3.9.21") ligne_Country_annee1 <- data[L, (Num_Col_Debut_2021+1):Num_Col_Debut_2022] index_Country_annee1 <- 1:length(ligne_Country_annee1) #nous choississons la période du 10 mars 2021 au 09 mars 2022, comme année 2 de l'épidemie Num_Col_Debut_2023 <- which(colnames(data)== "X3.9.22") ligne_Country_annee2 <- data[L, (Num_Col_Debut_2022+1):Num_Col_Debut_2023] index_Country_annee2 <- 1:length(ligne_Country_annee1) #nous choississons la période du 10 mars 2022 au 09 mars 2023, comme l'année 3 de l'épidemie ligne_Country_annee3 <- data[L, (Num_Col_Debut_2023+1):Num_Col_Fin_Epidemie] index_Country_annee3 <- 1:length(ligne_Country_annee3) #index de toute la periode de l'epidemie ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) ## Courbes de l'incidence pour le Cameroun #Courbe pour la période initiale 22 janvier - 09 mars 2020 plot(index_Country_annee0, ligne_Country_annee0, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Cameroun_jan 2020 - mars 2020") #Courbe pour l'année 1 de l'épidemie plot(index_Country_annee1, ligne_Country_annee1, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Cameroun_mars 2020 - mars 2021") #Courbe pour l'année 2 de l'épidemie plot(index_Country_annee2, ligne_Country_annee2, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Cameroun_mars 2021 - mars 2022") #Courbe pour l'année 3 de l'épidemie plot(index_Country_annee3, ligne_Country_annee3, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Cameroun_mars 2022 - mars 2023") #courbe pour toute la période de l'épidemie plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Cameroun_jan 2020 - mars 2023") ``` ## Courbes de l'incidence cumulée pour les pays précisés dans l'énoncé de l'exercice ### Belgique ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "Belgium") # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Belgique_jan 2020 - mars 2023") ``` ### Chine ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "China") L_HK <- which(data$Province.State == "Hong Kong") # Calculer la somme des incidences des différentes provinces de la Chine # excepté Hong Kong nouvelle_ligne <- colSums(data[L[L != L_HK], Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie]) nouvelle_ligne <- c("","China","","",nouvelle_ligne) # Insérer la nouvelle ligne après la ligne "L[length(L)]" L_final <- L[length(L)] # on va inserer la nouvelle ligne de données juste apres # la ligne de la derniere province de la Chine data <- rbind(data[1:L_final, ], nouvelle_ligne, data[(L_final+1):nrow(data), ]) # Sélection des données de la Chine (toutes provinces excepté Hong-Kong) ligne_Country_global <- as.numeric(data[nouvelle_ligne, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie]) index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Hong Kong (Chine)_jan 2020 - mars 2023") ``` ### Hong-Kong (CHine) ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Province.State == "Hong Kong") # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Hong Kong (Chine)_jan 2020 - mars 2023") ``` ### France (métropole) ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "France") L <- L[length(L)] #choisir parmi les lignes intitulees France celle qui nous interesse # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_France (Metropole)_jan 2020 - mars 2023") ``` ### Allemagne ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "Germany") # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Allemagne_jan 2020 - mars 2023") ``` ### Iran ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "Iran") # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Iran_jan 2020 - mars 2023") ``` ### Italie ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "Italy") # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Italie_jan 2020 - mars 2023") ``` ### Japon ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "Japan") # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Japon_jan 2020 - mars 2023") ``` ### Corée du Sud ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "Korea, South") # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Corée du Sud_jan 2020 - mars 2023") ``` ### Hollande (Sans les colonies) ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "Netherlands") L <- L[length(L)] #Choisir par les lignes intitulees Netherlands celle qui nous interesse # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Hollande (sans les colonies)_jan 2020 - mars 2023") ``` ### Portugal ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "Portugal") # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Portugal_jan 2020 - mars 2023") ``` ### Espagne ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "Spain") # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Espagne_jan 2020 - mars 2023") ``` ### Grande-Bretagne (Sans les colonies) ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "United Kingdom") L <- L[length(L)] #Choisir parmi les lignes intitulees UK celle qui nous interesse # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Grande-Bretagne (sans les colonies)_jan 2020 - mars 2023") ``` ### Etats-Unis ```{r} # Sélection de la ligne du pays correspondant L <- which(data$Country.Region == "US") L <- L[length(L)] #Choisir parmi les lignes intitulees UK celle qui nous interesse # Sélection des données du pays correspondant ligne_Country_global <- data[L, Num_Col_Debut_Epidemie:Num_Col_Fin_Epidemie] index_Country_global <- 1:length(ligne_Country_global) # construction de la courbe de l'incidence cumulée du pays correspondant plot(index_Country_global, ligne_Country_global, type = "l", xlab = "Jours", ylab = "Incidence", main = "Covid-19_Etats-Unis_jan 2020 - mars 2023") ```