--- title: "analyse de l'incidence de la varicelle" author: "Amandine" date: "Le 8 Novembre 2024" output: html_document --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` # Préparation des données Etape 1 : récupérer les données Option 1 : via le site web ```{r} #Import des données à partir du site web data_url="https://www.sentiweb.fr/datasets/all/inc-7-PAY.csv" ``` Option 2 : import du fichier via un fichier téléchargé ```{r} #Import des donnees a partir du fichier telecharge data_file = "varicelle.csv" #Permet de verifier que la copie locale n'existe pas if (!file.exists(data_file)) { download.file(data_url, data_file, method="auto") } ``` ```{r} #Lecture du fichier data_v=read.csv(data_file,skip=1) head(data_v) ``` ```{r} #Affichage de la fin du fichier tail(data_v) ``` # Vérifications Vérification de la présence de données manquantes ```{r} #Verification qu'il n'y a pas de ligne avec des donnees manquantes lignes_na=apply(data_v,1,function(x) any(is.na(x))) data_v[lignes_na,] ``` On voit qu'il n'y a pas de données manquantes dans ce fichier. Vérification du type de variable ```{r} #Verification du type de variable class(data_v$week) ``` ```{r} #Verification du type de variable class(data_v$inc) ``` Les deux variables d'intérêt sont bien des entiers. # Changement du format des dates ```{r} #Chargement du package library(parsedate) ``` ```{r} #Conversion du format de date convert_week = function(w) { ws = paste(w) iso = paste0(substring(ws, 1, 4), "-W", substring(ws, 5, 6)) as.character(parse_iso_8601(iso)) } ``` ```{r} #Application a tous les points data_v$date=as.Date(sapply(data_v$week,convert_week)) ``` ```{r} #Verification que la classe est bien "date" class(data_v$date) ``` ```{r} #Permet de trier les points par ordre chronologique data_v=data_v[order(data_v$date),] ``` ```{r} #affichage head(data_v) ``` ```{r} #Verification qu'il n'y a pas de ligne manquante all(diff(data_v$date)==7) ``` # Inspection ```{r} #Visualisation de l'ensemble des donnees with(data_v,plot(date,inc,type="l")) ``` ```{r} #zoom sur les dernieres annees with(tail(data_v,200),plot(date,inc,type="l")) ``` # Incidence annuelle ```{r} #Calcul de l'incidence annuelle en considerant le 1er septembre comme le debut de chaque periode annuelle pic_annuel = function(annee) { debut = paste0(annee-1,"-09-01") fin = paste0(annee,"-09-01") semaines = data_v$date > debut & data_v$date <= fin sum(data_v$inc[semaines], na.rm=TRUE) } ``` ```{r} #L'annee 1990 n'est pas complete : on commence donc à l'annee 1990 ; on garde l'annee 2024 car la semaine 44 a lieu apres le 1er septembre annees=1991:2024 ``` ```{r} #Creation jeu de donnees pour l'incidence annuelle incidence_annuelle = data.frame(annee=annees,incidence=sapply(annees,pic_annuel)) ``` ```{r} #affichage du jeu de donnees head(incidence_annuelle) ``` ```{r} #representation graphique plot(incidence_annuelle,type="l", xlab="Année", ylab="Incidence annuelle") ``` ```{r} #Affichage de la ligne avec la valeur d'incidence la plus elevee inc_max=which.max(incidence_annuelle$incidence) incidence_annuelle[inc_max,] ``` ```{r} #Affichage des valeurs les plus faibles head(incidence_annuelle[order(incidence_annuelle$incidence),]) ```