Sujet 7

parent 7311b628
**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" 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} ```{r}
library(readr) 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") 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) 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} ```{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') 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) View(data2)
...@@ -22,7 +21,7 @@ data4 = data4[,-3] ...@@ -22,7 +21,7 @@ data4 = data4[,-3]
View(data4) 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} ```{r}
library(dplyr) library(dplyr)
library(reshape2) library(reshape2)
...@@ -42,7 +41,7 @@ table_pays3 = bind_rows(table_pays, table_pays2) ...@@ -42,7 +41,7 @@ table_pays3 = bind_rows(table_pays, table_pays2)
View(table_pays3) 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} ```{r}
nb_cas_pays = aggregate(value ~ Pays_Date, data= table_pays3, sum) nb_cas_pays = aggregate(value ~ Pays_Date, data= table_pays3, sum)
library(tidyr) library(tidyr)
...@@ -51,44 +50,44 @@ nb_cas_pays$Pays_Date = paste(nb_cas_pays$'Pays',nb_cas_pays$'Date',sep="_") ...@@ -51,44 +50,44 @@ nb_cas_pays$Pays_Date = paste(nb_cas_pays$'Pays',nb_cas_pays$'Date',sep="_")
View(nb_cas_pays) View(nb_cas_pays)
``` ```
###Regardons ce que nous avons obtenu: **Regardons ce que nous avons obtenu:**
```{r} ```{r}
head(nb_cas_pays) head(nb_cas_pays)
tail(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} ```{r}
class(nb_cas_pays$'value') class(nb_cas_pays$'value')
class(nb_cas_pays$'Pays') 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} ```{r}
na_records = apply(nb_cas_pays, 1, function (x) any(is.na(x))) na_records = apply(nb_cas_pays, 1, function (x) any(is.na(x)))
nb_cas_pays[na_records,] nb_cas_pays[na_records,]
``` ```
### Conversion des numéros de semaine **Conversion des numéros de semaine**
```{r} ```{r}
library("lubridate") library("lubridate")
library("magrittr") library("magrittr")
library(parsedate) 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} ```{r}
nb_cas_pays$convert_date = mdy(nb_cas_pays$Date) 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} ```{r}
nb_cas_pays = nb_cas_pays[order(nb_cas_pays$convert_date),] 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} ```{r}
library(dplyr) library(dplyr)
table_China = subset(nb_cas_pays, nb_cas_pays$Pays == "China") 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") ...@@ -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} ```{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") 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.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)) 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} ```{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") 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.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)) 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} ```{r}
plot.new() plot.new()
par(mar=c(7,4,3,3)) par(mar=c(7,4,3,3))
...@@ -159,7 +158,7 @@ legend(x="top",legend = c("UK", "Belgium", "China", "France", "Germany", "Italy" ...@@ -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") 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} ```{r}
plot.new() plot.new()
par(mar=c(7,4,3,3)) par(mar=c(7,4,3,3))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment