Sujet 7 : travail évalué pairs

parent e9277279
#+TITLE: Votre titre
#+AUTHOR: Votre nom ## Préparation des données
#+DATE: La date du jour
#+LANGUAGE: fr 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"
# #+PROPERTY: header-args :eval never-export
### Téléchargement
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/> ```{r}
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/> library(readr)
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 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")
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> View(data)
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script> ```
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
### 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).
* Quelques explications ```{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')
Ceci est un document org-mode avec quelques exemples de code View(data2)
R. Une fois ouvert dans emacs, ce document peut aisément être less = c(35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 52, 53, 54, 55, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69)
exporté au format HTML, PDF, et Office. Pour plus de détails sur data3 = data2[-less,]
org-mode vous pouvez consulter https://orgmode.org/guide/. View(data3)
data4 = data3[,-3]
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera data4 = data4[,-3]
compilé en html. Tout le code contenu sera ré-exécuté, les résultats View(data4)
récupérés et inclus dans un document final. Si vous ne souhaitez pas ```
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce ###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.
document. ```{r}
library(dplyr)
Comme nous vous l'avons montré dans la vidéo, on inclut du code library(reshape2)
R de la façon suivante (et on l'exécute en faisant ~C-c C-c~): table_pays = melt(data4, id.vars = 'Country/Region',
measure.vars = colnames(select(data4,
#+begin_src R :results output :exports both ends_with("/20"))))
print("Hello world!") table_pays = table_pays[!is.na(table_pays$value),]
#+end_src table_pays$Pays_Date = paste(table_pays$'Country/Region',table_pays$'variable',sep="_")
#+RESULTS: table_pays2 = melt(data4, id.vars = 'Country/Region',
: [1] "Hello world!" measure.vars = colnames(select(data4,
ends_with("/21"))))
Voici la même chose, mais avec une session R (c'est le cas le
plus courant, R étant vraiment un langage interactif), donc une table_pays2$Pays_Date = paste(table_pays2$'Country/Region',table_pays2$'variable',sep="_")
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant table_pays2 = table_pays2[!is.na(table_pays2$value),]
~C-c C-c~). table_pays3 = bind_rows(table_pays, table_pays2)
View(table_pays3)
#+begin_src R :results output :session *R* :exports both ```
summary(cars)
#+end_src ###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}
#+RESULTS: nb_cas_pays = aggregate(value ~ Pays_Date, data= table_pays3, sum)
: speed dist library(tidyr)
: Min. : 4.0 Min. : 2.00 nb_cas_pays = separate(nb_cas_pays, "Pays_Date", c("Pays", "Date"), sep = "_")
: 1st Qu.:12.0 1st Qu.: 26.00 nb_cas_pays$Pays_Date = paste(nb_cas_pays$'Pays',nb_cas_pays$'Date',sep="_")
: Median :15.0 Median : 36.00 View(nb_cas_pays)
: Mean :15.4 Mean : 42.98 ```
: 3rd Qu.:19.0 3rd Qu.: 56.00
: Max. :25.0 Max. :120.00 ###Regardons ce que nous avons obtenu:
```{r}
Et enfin, voici un exemple de sortie graphique: head(nb_cas_pays)
#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R* tail(nb_cas_pays)
plot(cars) ```
#+end_src
###Les deux colonnes qui nous intéressent sont `value` et `Pays`. Vérifions leurs classes:
#+RESULTS: ```{r}
[[file:./cars.png]] class(nb_cas_pays$'value')
class(nb_cas_pays$'Pays')
Vous remarquerez le paramètre ~:exports results~ qui indique que le code ```
ne doit pas apparaître dans la version finale du document. Nous vous ###Value = numeric et Pays = character
recommandons dans le cadre de ce MOOC de ne pas changer ce paramètre
(indiquer ~both~) car l'objectif est que vos analyses de données soient
parfaitement transparentes pour être reproductibles. ###Y a-t-il des points manquants dans nos données ?
```{r}
Attention, la figure ainsi générée n'est pas stockée dans le document na_records = apply(nb_cas_pays, 1, function (x) any(is.na(x)))
org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas nb_cas_pays[na_records,]
de le committer si vous voulez que votre analyse soit lisible et ```
compréhensible sur GitLab.
### Conversion des numéros de semaine
Enfin, pour les prochains exercices, nous ne vous fournirons pas ```{r}
forcément de fichier de départ, ça sera à vous de le créer, par library("lubridate")
exemple en repartant de ce document et de le commiter vers library("magrittr")
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de library(parsedate)
ce MOOC une configuration avec un certain nombre de raccourcis ```
claviers permettant de créer rapidement les blocs de code R (en
faisant ~<r~ ou ~<R~ suivi de ~Tab~). ###Modification du format de la date dans la colonne 'convert_date'
```{r}
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces nb_cas_pays$convert_date = mdy(nb_cas_pays$Date)
informations et les remplacer par votre document computationnel. ```
###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.
```{r}
library(dplyr)
table_China = subset(nb_cas_pays, nb_cas_pays$Pays == "China")
table_Belgium = subset(nb_cas_pays, nb_cas_pays$Pays == "Belgium")
table_Hong_Kong = subset(data4, data4$`Province/State` == "Hong_Kong")
table_France = subset(nb_cas_pays, nb_cas_pays$Pays == "France")
table_Germany = subset(nb_cas_pays, nb_cas_pays$Pays == "Germany")
table_Iran = subset(nb_cas_pays, nb_cas_pays$Pays == "Iran")
table_Italy = subset(nb_cas_pays, nb_cas_pays$Pays == "Italy")
table_Japan = subset(nb_cas_pays, nb_cas_pays$Pays == "Japan")
table_Korea = subset(nb_cas_pays, nb_cas_pays$Pays == "Korea, South")
table_Netherlands = subset(nb_cas_pays, nb_cas_pays$Pays == "Netherlands")
table_Portugal = subset(nb_cas_pays, nb_cas_pays$Pays == "Portugal")
table_Spain = subset(nb_cas_pays, nb_cas_pays$Pays == "Spain")
table_UK = subset(nb_cas_pays, nb_cas_pays$Pays == "United Kingdom")
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 :
```{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 :
```{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 :
```{r}
plot.new()
par(mar=c(7,4,3,3))
plot_UK = plot(x=table_UK$convert_date, y=table_UK$value, type="l", axes=F, xlab="", ylab="", col="purple")
axis(side=2, at=seq(0e+00, 4e+06, by=1e+06))
mtext("Nombre de cas cumulé", side=2, line=2.5)
par(new=T)
plot_Belgium = plot(x=table_Belgium$convert_date, y=table_Belgium$value, type="l", axes=F, xlab="", ylab="", col="red")
par(new=T)
plot_China = plot(x=table_China$convert_date, y=table_China$value, type="l", axes=F, xlab="", ylab="", col="green")
par(new=T)
plot_France = plot(x=table_France$convert_date, y=table_France$value, type="l", axes=F, xlab="", ylab="", col="blue")
par(new=T)
plot_Germany = plot(x=table_Germany$convert_date, y=table_Germany$value, type="l", axes=F, xlab="", ylab="", col="yellow")
par(new=T)
plot_Iran = plot(x=table_Iran$convert_date, y=table_Iran$value, type="l", axes=F, xlab="", ylab="", col="brown")
par(new=T)
plot_Italy = plot(x=table_Italy$convert_date, y=table_Italy$value, type="l", axes=F, xlab="", ylab="", col="black")
par(new=T)
plot_Japan = plot(x=table_Japan$convert_date, y=table_Japan$value, type="l", axes=F, xlab="", ylab="", col="pink")
par(new=T)
plot_Korea = plot(x=table_Korea$convert_date, y=table_Korea$value, type="l", axes=F, xlab="", ylab="", col="cyan")
par(new=T)
plot_Netherlands = plot(x=table_Netherlands$convert_date, y=table_Netherlands$value, type="l", axes=F, xlab="", ylab="", col="orange")
par(new=T)
plot_Portugal = plot(x=table_Portugal$convert_date, y=table_Portugal$value, type="l", axes=F, xlab="", ylab="", col="orchid")
par(new=T)
plot_Spain = plot(x=table_Spain$convert_date, y=table_Spain$value, type="l", axes=F, xlab="", ylab="", col="salmon")
par(new=T)
plot_US = plot(x=table_US$convert_date, y=table_US$value, type="l", axes=F, xlab="", ylab="", col="navy")
axis.Date(side=1, at=seq(min(table_UK$convert_date), max(table_UK$convert_date), by="months"), format="%m-%Y")
mtext("Date", side=1, line=2.5)
legend(x="top",legend = c("UK", "Belgium", "China", "France", "Germany", "Italy", "Japan", "South Korea", "Netherlands", "Portugal", "Spain", "US"), text.col = c("purple", "red", "green", "blue", "yellow", "brown", "black", "pink", "cyan", "orange", "orchid", "salmon", "navy"), pch=c(16), col = c("purple", "red", "green", "blue", "yellow", "brown", "black", "pink", "cyan", "orange", "orchid", "salmon", "navy"), ncol = 5, inset = 1.22, xpd = 1, box.lty = 0, bg = 'transparent')
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 :
```{r}
plot.new()
par(mar=c(7,4,3,3))
plot_UK = plot(x=table_UK$convert_date, y=table_UK$value, type="l", axes=F, xlab="", ylab="", col="purple", log = "y")
axis(side=2, log = "y", at=seq(0e+00, 1e+07, by=1e+04))
mtext("Nombre de cas cumulé", side=2, line=2.5)
par(new=T)
plot_Belgium = plot(x=table_Belgium$convert_date, y=table_Belgium$value, type="l", axes=F, xlab="", ylab="", col="red", log = "y")
par(new=T)
plot_China = plot(x=table_China$convert_date, y=table_China$value, type="l", axes=F, xlab="", ylab="", col="green", log = "y")
par(new=T)
plot_France = plot(x=table_France$convert_date, y=table_France$value, type="l", axes=F, xlab="", ylab="", col="blue", log = "y")
par(new=T)
plot_Germany = plot(x=table_Germany$convert_date, y=table_Germany$value, type="l", axes=F, xlab="", ylab="", col="yellow", log = "y")
par(new=T)
plot_Iran = plot(x=table_Iran$convert_date, y=table_Iran$value, type="l", axes=F, xlab="", ylab="", col="brown", log = "y")
par(new=T)
plot_Italy = plot(x=table_Italy$convert_date, y=table_Italy$value, type="l", axes=F, xlab="", ylab="", col="black", log = "y")
par(new=T)
plot_Japan = plot(x=table_Japan$convert_date, y=table_Japan$value, type="l", axes=F, xlab="", ylab="", col="pink", log = "y")
par(new=T)
plot_Korea = plot(x=table_Korea$convert_date, y=table_Korea$value, type="l", axes=F, xlab="", ylab="", col="cyan", log = "y")
par(new=T)
plot_Netherlands = plot(x=table_Netherlands$convert_date, y=table_Netherlands$value, type="l", axes=F, xlab="", ylab="", col="orange", log = "y")
par(new=T)
plot_Portugal = plot(x=table_Portugal$convert_date, y=table_Portugal$value, type="l", axes=F, xlab="", ylab="", col="orchid", log = "y")
par(new=T)
plot_Spain = plot(x=table_Spain$convert_date, y=table_Spain$value, type="l", axes=F, xlab="", ylab="", col="salmon", log = "y")
par(new=T)
plot_US = plot(x=table_US$convert_date, y=table_US$value, type="l", axes=F, xlab="", ylab="", col="navy", log = "y")
axis.Date(side=1, at=seq(min(table_UK$convert_date), max(table_UK$convert_date), by="months"), format="%m-%Y")
mtext("Date", side=1, line=2.5)
legend(x="top",legend = c("UK", "Belgium", "China", "France", "Germany", "Italy", "Japan", "South Korea", "Netherlands", "Portugal", "Spain", "US"), text.col = c("purple", "red", "green", "blue", "yellow", "brown", "black", "pink", "cyan", "orange", "orchid", "salmon", "navy"), pch=c(16), col = c("purple", "red", "green", "blue", "yellow", "brown", "black", "pink", "cyan", "orange", "orchid", "salmon", "navy"), ncol = 5, inset = 1.22, xpd = 1, box.lty = 0, bg = 'transparent')
title(main = "Représentation du nombre de cas cumulé en fonction du temps par pays")
```
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