Commit 3d94a762 authored by Hugues de Courson's avatar Hugues de Courson

Commit de l'exo2 du module 3

parent 0759286a
This diff is collapsed.
This diff is collapsed.
...@@ -10,24 +10,101 @@ output: html_document ...@@ -10,24 +10,101 @@ output: html_document
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
``` ```
## Quelques explications ###On commence par récupérer les données sur le site de la veille sanitaire
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}
data_url = "https://www.sentiweb.fr/datasets/incidence-PAY-7.csv"
```
#Ensuite on importe les données, on le note "temp" car temporaire, le définitif étant le fichier local
```{r}
datatemp <- read.csv(data_url)
```
#On constate que la fonction read.csv ne fonctionne pas bien dans ce cas
```{r}
datatemp <- read.csv(data_url, skip = 1)
```
# C'est mieux avec l'argument skip !!
## On en fait ensuite une copie locale qu'on va ré-importer ensuite
# copie locale
```{r}
write.csv(datatemp, "datatemp.csv")
```
#ré-import
```{r}
data <- read.csv("datatemp.csv")
```
#on inspecte les donnees et on constate :
1. une colonne est apparue en début de fichier
2. les données de dates nécessitent une transformation
# 1. on supprime donc la colonne inutile:
```{r}
data <- data[,-1]
```
# 2. on s'occupe de mettre les bons formats de date
```{r}
# chargement du package
library(parsedate)
# création de la fonction
convert_week = function(w) {
ws = paste(w)
iso = paste0(substring(ws, 1, 4), "-W", substring(ws, 5, 6))
as.character(parse_iso_8601(iso))
}
# on applique la fonction au dataset
data$date = as.Date(convert_week(data$week))
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: #on vérifie
str(data$date)
```{r cars} # et on remet dans l'ordre chronologique les dates
summary(cars)
data<- data[order(data$date),]
#on vérifie
str(data$date)
```
### On va commencer à regarder nos données !
```{r}
plot(x=data$date, y=data$inc, type = 'l')
``` ```
Et on peut aussi aisément inclure des figures. Par exemple: On constate déjà qu'il y a une certaine périodicité dans les données, probablement une incidence peut-être hivernale ? Nous allons tracer seulement une partie des données pour s'en rendre compte
```{r pressure, echo=FALSE} ```{r}
plot(pressure) plot(x=tail(data$date, 200), y=tail(data$inc,200), type = 'l')
``` ```
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. Effectivement il semble y avoir une périodicité annuelle avec une augmentation de l'incidence lors du premier semestre avec un pic qui semble hivernal. Nous allons donc découper de façon à avoir l'incidence annuelle !
### Incidence annuelle
```{r}
# on crée la fonction qui permet d'avoir le pic annuel en calculant de septembre à septembre
pic_annuel = function(annee) {
debut = paste0(annee-1,"-09-01")
fin = paste0(annee,"-09-01")
semaines = data$date > debut & data$date <= fin
sum(data$inc[semaines], na.rm=TRUE)
}
# on choisit les années qui vont bien car le recueil commence en 1990
annees <- 1991:2020
# et ensuite on effectue le calcul
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. inc_annuelle = data.frame(annee = annees,
incidence = sapply(annees, pic_annuel))
head(inc_annuelle)
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel. ```
\ No newline at end of file
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