Commit f944ec7b authored by Valerie COGNAT's avatar Valerie COGNAT

subject 7 - SARS-Cov2 - in Rstudio

parent b91befd8
--- ---
title: "Votre titre" title: "Autour du SARS-CoV-2 (Covid-19)"
author: "Votre nom" author: "Valerie C"
date: "La date du jour" date: "22 juillet 2020"
output: html_document output: html_document
--- ---
...@@ -10,24 +10,116 @@ output: html_document ...@@ -10,24 +10,116 @@ output: html_document
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
``` ```
## Quelques explications
Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez <http://rmarkdown.rstudio.com>. ```{r libraries, echo=FALSE, warning=FALSE, message=FALSE}
library(plyr) # help for data manipulation
library(dplyr) # help splitting, applying and combining data
library(data.table) # extension to data.frame format, optimized for huge datasets
library(ggplot2) # The grammar of graphics, it improves the quality and aesthetic of your graphs
library(DT)
library(plotly)
library(RColorBrewer) # package with pre-defined color palette
```
## Récupération des données
Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: Le fichier est téléchargé à partir de l'url puis lu via la fonction fread pour avoir un objet data.table. Le nom des colonnes est vérifié pour remplacer les caractères spéciaux par des ".".
```{r cars} ```{r data_dwld}
summary(cars) 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")
``` ```
Et on peut aussi aisément inclure des figures. Par exemple: ## 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
```{r}
## 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"
```{r pressure, echo=FALSE} ## Filter UK colonies
plot(pressure) covid_data[covid_data$Country.Region == "United Kingdom" & covid_data$Province.State != "", ]$Country.Region <- "United Kingdom, colonies"
``` ```
Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. ### Creation d'un sous jeu de données pour analyse des pays d'intérêts
Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. Création d'un sous jeu de données avec les pays d'intérêts.
```{r}
## 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
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel. 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.
```{r}
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
```{r}
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.
```{r plot, echo=FALSE, fig.height=15, fig.width=12}
ggplot(covid.byCountry, aes(x = as.Date(Date), y = Case_number, group = Country.Region)) +
geom_line(aes(color = Country.Region), size=1) +
scale_color_manual(values = c("#00008B","#33a02c","#e31a1c","#8470FF","#FF7F24","#7A378B","#00688B","#FFF68F","#FF82AB","#5C5C5C","#87CEEB","#D9D9D9","#8B5A00","#9ACD32","#8EE5EE","#20B2AA","#FFF0F5","#FFFF00","#FFFFFF")) +
scale_x_date(date_breaks = 'week') +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5)) +
theme(axis.text.x = element_text(angle = 90, hjust = 1))+
ggtitle("Number of Covid Cases by Country") +
xlab("Date") +
ylab("Number of cases") + labs(color = "Country")
```
Reproduction du graphique en log10 :
```{r plot_log, echo=FALSE, fig.height=15, fig.width=12}
ggplot(covid.byCountry, aes(x = as.Date(Date), y = Case_number, group = Country.Region)) +
geom_line(aes(color = Country.Region), size = 1) +
scale_color_manual(values = c("#00008B","#33a02c","#e31a1c","#8470FF","#FF7F24","#7A378B","#00688B","#FFF68F","#FF82AB","#5C5C5C","#87CEEB","#D9D9D9","#8B5A00","#9ACD32","#8EE5EE","#20B2AA","#FFF0F5","#FFFF00","#FFFFFF")) +
scale_x_date(date_breaks = 'week') +
scale_y_log10() +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5)) +
theme(axis.text.x = element_text(angle = 90, hjust = 1))+
ggtitle("Number of Covid Cases by Country") +
xlab("Date") +
ylab("Number of cases (log10)") + labs(color = "Country")
```
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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