From 6d2f53e61caeb2a202b01787c4d313860bd2fd38 Mon Sep 17 00:00:00 2001 From: 1abfb3016981d22dedc79510d35b7fa2 <1abfb3016981d22dedc79510d35b7fa2@app-learninglab.inria.fr> Date: Sun, 16 Jul 2023 20:58:37 +0000 Subject: [PATCH] Sujet 7 --- module3/exo3/exercice_R_fr.org | 35 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/module3/exo3/exercice_R_fr.org b/module3/exo3/exercice_R_fr.org index 1902631..2c3c62d 100644 --- a/module3/exo3/exercice_R_fr.org +++ b/module3/exo3/exercice_R_fr.org @@ -1,16 +1,15 @@ - -## Préparation des données +**Préparation des données** Les données de l'évolution du nombre de cas de Covid_19 au cours du temps sont disponibles sur [Github](https://github.com/CSSEGISandData/COVID-19). Nous les récupérons sous forme d'un fichier en format CSV dont chaque ligne correspond à un Pays/Province. L'URL est: "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv" -### Téléchargement +**Téléchargement** ```{r} library(readr) data = read_csv("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv") View(data) ``` -### Sélection des données pour garder uniquement la Belgique (Belgium), la Chine - toutes les provinces sauf Hong-Kong (China), Hong Kong (China, Hong-Kong), la France métropolitaine (France), l’Allemagne (Germany), l’Iran (Iran), l’Italie (Italy), le Japon (Japan), la Corée du Sud (Korea, South), la Hollande sans les colonies (Netherlands), le Portugal (Portugal), l’Espagne (Spain), le Royaume-Unis sans les colonies (United Kingdom), les États-Unis (US). +**Sélection des données pour garder uniquement la Belgique (Belgium), la Chine - toutes les provinces sauf Hong-Kong (China), Hong Kong (China, Hong-Kong), la France métropolitaine (France), l’Allemagne (Germany), l’Iran (Iran), l’Italie (Italy), le Japon (Japan), la Corée du Sud (Korea, South), la Hollande sans les colonies (Netherlands), le Portugal (Portugal), l’Espagne (Spain), le Royaume-Unis sans les colonies (United Kingdom), les États-Unis (US).** ```{r} data2 = subset(data, data$`Country/Region`=='Belgium'|data$`Country/Region`=='China'|data$`Country/Region`=='France'|data$`Country/Region`=='Germany'|data$`Country/Region`=='Iran'|data$`Country/Region`=='Italy'|data$`Country/Region`=='Japan'|data$`Country/Region`=='Korea, South'|data$`Country/Region`=='Netherlands'|data$`Country/Region`=='Portugal'|data$`Country/Region`=='Spain'|data$`Country/Region`=='United Kingdom'|data$`Country/Region`=='US') View(data2) @@ -22,7 +21,7 @@ data4 = data4[,-3] View(data4) ``` -###Modification du tableau : les dates sont rassemblées dans une seule colonne. Une colonne Pays_Date a été ajoutée. Les colonnes Long, Lat et Province/State ont été éliminées. +**Modification du tableau : les dates sont rassemblées dans une seule colonne. Une colonne Pays_Date a été ajoutée. Les colonnes Long, Lat et Province/State ont été éliminées.** ```{r} library(dplyr) library(reshape2) @@ -42,7 +41,7 @@ table_pays3 = bind_rows(table_pays, table_pays2) View(table_pays3) ``` -###Fusion des lignes par mêmes pays et mêmes dates. Par exemple, toutes les provinces de Chine ont été rassemblées ensemble pour les mêmes dates. +**Fusion des lignes par mêmes pays et mêmes dates. Par exemple, toutes les provinces de Chine ont été rassemblées ensemble pour les mêmes dates.** ```{r} nb_cas_pays = aggregate(value ~ Pays_Date, data= table_pays3, sum) library(tidyr) @@ -51,44 +50,44 @@ nb_cas_pays$Pays_Date = paste(nb_cas_pays$'Pays',nb_cas_pays$'Date',sep="_") View(nb_cas_pays) ``` -###Regardons ce que nous avons obtenu: +**Regardons ce que nous avons obtenu:** ```{r} head(nb_cas_pays) tail(nb_cas_pays) ``` -###Les deux colonnes qui nous intéressent sont `value` et `Pays`. Vérifions leurs classes: +**Les deux colonnes qui nous intéressent sont `value` et `Pays`. Vérifions leurs classes:** ```{r} class(nb_cas_pays$'value') class(nb_cas_pays$'Pays') ``` -###Value = numeric et Pays = character +*Value = numeric et Pays = character* -###Y a-t-il des points manquants dans nos données ? +**Y a-t-il des points manquants dans nos données ?** ```{r} na_records = apply(nb_cas_pays, 1, function (x) any(is.na(x))) nb_cas_pays[na_records,] ``` -### Conversion des numéros de semaine +**Conversion des numéros de semaine** ```{r} library("lubridate") library("magrittr") library(parsedate) ``` -###Modification du format de la date dans la colonne 'convert_date' +**Modification du format de la date dans la colonne 'convert_date'** ```{r} nb_cas_pays$convert_date = mdy(nb_cas_pays$Date) ``` -###Les points sont dans l'ordre chronologique inverse, il est donc utile de les trier: +**Les points sont dans l'ordre chronologique inverse, il est donc utile de les trier:** ```{r} nb_cas_pays = nb_cas_pays[order(nb_cas_pays$convert_date),] ``` -###Le jeu de données est divisé en petit tableau par différents pays. +**Le jeu de données est divisé en petit tableau par différents pays.** ```{r} library(dplyr) table_China = subset(nb_cas_pays, nb_cas_pays$Pays == "China") @@ -108,21 +107,21 @@ table_US = subset(nb_cas_pays, nb_cas_pays$Pays == "US") ``` -###Visualisation d'une partie des données. Plot UK avec une échelle linéaire : +**Visualisation d'une partie des données. Plot UK avec une échelle linéaire :** ```{r} plot_UK = plot(x=table_UK$convert_date, y=table_UK$value, type="l", axes=F, xlab="Date", ylab="nombre de cas cumulé", main="Nombre de cas cumulé en fonction de la date pour les UK") axis.Date(side=1, at=seq(min(table_UK$convert_date), max(table_UK$convert_date), by="months"), format="%m-%Y") axis(side=2, at=seq(0e+00, 4e+06, by=1e+06)) ``` -###Visualisation d'une partie des données. Plot UK échelle logarithmique : +**Visualisation d'une partie des données. Plot UK échelle logarithmique :** ```{r} plot_UK = plot(x=table_UK$convert_date, y=table_UK$value, type="l", axes=F, xlab="Date", ylab="nombre de cas cumulé", main="Nombre de cas cumulé en fonction de la date pour les UK", log = "y") axis.Date(side=1, at=seq(min(table_UK$convert_date), max(table_UK$convert_date), by="months"), format="%m-%Y") axis(side=2, at=seq(0e+00, 4e+06, by=1e+06)) ``` -###Représentation graphique des courbes des différents pays avec échelle linéaire : +**Représentation graphique des courbes des différents pays avec échelle linéaire :** ```{r} plot.new() par(mar=c(7,4,3,3)) @@ -159,7 +158,7 @@ legend(x="top",legend = c("UK", "Belgium", "China", "France", "Germany", "Italy" title(main = "Représentation du nombre de cas cumulé en fonction du temps par pays") ``` -###Représentation graphique des courbes des différents pays avec échelle logarithmique : +**Représentation graphique des courbes des différents pays avec échelle logarithmique :** ```{r} plot.new() par(mar=c(7,4,3,3)) -- 2.18.1