# Bertrand Vassor Ariteam : CC-BY-NC-ND Creative Commons - Attribution - Pas d’utilisation commerciale # le 18/04/2020. Traitement du Codiv-19 France # Acquisition des données France # liste des packages library(utils) library(httr) library(tidyverse) library(lubridate) library(readr) library(RColorBrewer) library(scales) library(reshape2) library(ggforce) ############################################################################################### ### A ne faire que la la première fois pour initialiser les données des départements et régions----- ############################################################################################### # 1- https://www.insee.fr/fr/information/3363419#titre-bloc-26 # 2- Importer au format txt les département et les régions # 3- transformer les fichiers au format .csv # 4- lancer R reg2019 <- read_csv("region2019.csv") reg2019 <- reg2019 %>% select(-c(cheflieu, tncc, ncc, nccenr)) %>% rename(reg,REGION=reg) dept2016 <- read_delim("depts2016.csv", "\t", escape_double = FALSE, locale = locale(encoding = "ISO-8859-1"), trim_ws = TRUE) dept2016 <- dept2016 %>% select(-c(CHEFLIEU, TNCC, NCC)) ################################################################################ ### Chaque jour import des données hospitalières. Aller sur l'URL suivante ----- ################################################################################ # https://www.data.gouv.fr/fr/datasets/donnees-hospitalieres-relatives-a-lepidemie-de-covid-19/ # https://github.com/opencovid19-fr/data/blob/master/data-sources/sante-publique-france/covid_hospit.csv # URL alternative sur le git url="https://raw.githubusercontent.com/opencovid19-fr/data/master/data-sources/sante-publique-france/covid_hospit.csv" # URL de SPF url <- "https://www.data.gouv.fr/fr/datasets/r/63352e38-d353-4b54-bfd1-f1b3ee1cabd7" GET(url, authenticate(":", ":", type="ntlm"), write_disk(tf <- tempfile(fileext = ".csv"))) dataCovidFRBrut <- read.csv(tf,header=TRUE, sep=";") # URL des nouveaux cas quotidiens urlNx="https://www.data.gouv.fr/fr/datasets/r/6fadff46-9efd-4c53-942a-54aca783c30c" GET(urlNx, authenticate(":", ":", type="ntlm"), write_disk(tf <- tempfile(fileext = ".csv"))) nxCas <- read.csv(tf,header=TRUE, sep=";") # Supression des données H/F, calcul des différences par jour, ajout des nouveaux cas. # On dispose des données de bases par jour et par département dataCovidFRdep <- dataCovidFRBrut %>% filter(sexe == 0) %>% select(-c(sexe)) %>% arrange(dep,jour)%>% group_by(dep) %>% mutate(hospJ = c(0,diff(hosp)), reaJ = c(0,diff(rea)), radJ = c(0,diff(rad)), dcJ = c(0,diff(dc))) %>% ungroup() %>% left_join(nxCas, by =c("dep"="dep", "jour"="jour")) ## Agrégation des données par région # Ajout de la région aux données, aggrégation. On dispose des données de dataCovidFR par région. dataCovidFRreg <- left_join(dataCovidFRdep, dept2016, by = c("dep"="DEP")) dataCovidFRreg <- dataCovidFRreg %>% group_by(REGION) %>% arrange(REGION, dep,jour) %>% ungroup() %>% group_by(REGION, jour) %>% select(-dep) %>% summarise(hosp=sum(hosp),rea=sum(rea),rad=sum(rad),dc = sum(dc),hospJ=sum(hospJ),reaJ=sum(reaJ),radJ =sum(radJ), dcJ=sum(dcJ), incid_hosp=sum(incid_hosp), incid_rea=sum(incid_rea),incid_dc=sum(incid_dc), incid_rad=sum(incid_rad)) %>% ungroup() ##Agrégation France # Aggrégation au niveau France. On dispose des données de dataCovidFR pour la France et par jour. dataCovidFR <- dataCovidFRreg %>% select(-REGION) %>% group_by(jour) %>% summarise(hosp=sum(hosp), rea=sum(rea),rad=sum(rad),dc = sum(dc),hospJ=sum(hospJ),reaJ=sum(reaJ), radJ =sum(radJ), dcJ=sum(dcJ), incid_hosp=sum(incid_hosp), incid_rea=sum(incid_rea), incid_dc=sum(incid_dc), incid_rad=sum(incid_rad)) %>% ungroup() # Pour exploitation rapport écrit : write.csv2(covidFR,"donnees France") ################################################################ ## Fin de la collecte des données ################################################################ ################################################################ ### Préparation graphique #Cumul France cumulDataFR <- dataCovidFR %>% select(c(jour, hosp, rea, rad, dc)) cumulDataFR <- melt(cumulDataFR, variable.name = "key",value.names ="value", id.vars=c("jour")) cumulDataFR <- cumulDataFR %>% add_column(type="Occurence") cumulDataFR <-transform(cumulDataFR,jour=as.Date(jour,origin='1899-12-30')) # par jour le Delta dayDataFR <- dataCovidFR %>% select(c(jour, hospJ, reaJ, radJ, dcJ)) dayDataFR <- melt(dayDataFR, variable.name = "key",value.names ="value", id.vars=c("jour")) dayDataFR <-transform(dayDataFR,jour=as.Date(jour,origin='1899-12-30')) dayDataFR <- dayDataFR %>% add_column(type="Variation jour") # Préparation des étiquettes des graphiques dateTitre <- dataCovidFR %>% summarise(jourRecord=max(as.Date(jour,origin='1899-12-30'))) dateTitre <- as.Date(dateTitre$jourRecord) sourceFR <- "www.data.gouv.fr, INSEE. Produit par Ariteam.fr B Vassor" titreDay <- paste("Données hospitalières le ", dateTitre) date_7 <- dateTitre-7 date_14 <- dateTitre-14 # tendance France sur 2 semaines glissantes trendFR <- dataCovidFR %>% filter(as.Date(jour,origin='1899-12-30') == dateTitre | as.Date(jour,origin='1899-12-30') == date_7 | as.Date(jour,origin='1899-12-30') == date_14) %>% mutate(hospJ = c(0,diff(hosp)), reaJ = c(0,diff(rea)), radJ = c(0,diff(rad)), dcJ = c(0,diff(dc))) # Pour exploitation rapport écrit : write.csv(trendFR,file = ("../LaTex/data/trendFrance.csv"),row.names = FALSE, quote = FALSE) # Fonction d'impression fPrint <- function(){ pReg<- ggplot(dataPrint, aes(as.Date(jour,origin = "1899-12-30"),value))+ geom_line(aes(colour=as.factor(key)),size=0.7)+ scale_colour_brewer(palette ="Set1","légende\ncouleurs")+ scale_x_date(breaks = date_breaks("days"),labels = date_format("%d %b"))+ labs(x="Date",y="Nombre")+ ggtitle(titreDay)+labs(caption = sourceFR) pReg pReg+theme(axis.text.x = element_text(angle = 90, hjust = 1))+facet_grid(libelle ~ ., scales='free') } ################################################################## ## Fin préparation des graphiques ################################################################## ###Graphiques France --- ## ggplot facet dayCumulDataFR <- bind_rows(cumulDataFR, dayDataFR) dayCumulDataFR$key <- fct_recode(dayDataFR$key, "hospitalisé"="hospJ", "décès"="dcJ", "réa"="reaJ", "sortie"="radJ") dataPrint <- dayCumulDataFR pFr<- ggplot(dayCumulDataFR, aes(as.Date(jour,origin = "1899-12-30"),value))+ geom_line(aes(colour=as.factor(key)),size=0.7)+ scale_colour_brewer(palette ="Set1","légende\ncouleurs")+ scale_x_date(breaks = date_breaks("days"),labels = date_format("%d %b"))+ labs(x="Date",y="Nombre")+ ggtitle(titreDay)+labs(caption = sourceFR) pFr+facet_grid(type ~ ., scales='free')+theme(axis.text.x = element_text(angle = 90, hjust = 1)) ggsave(file=paste("France",dateTitre,".pdf")) ggsave(filename = "France.pdf", path = "../LaTex/fig/") ### Gaphique régions ---- ## par jour dayDataReg <- dataCovidFRreg %>% select(c(jour, hospJ, reaJ, radJ, dcJ, REGION)) dayDataReg <- melt(dayDataReg, variable.name = "key",value.names ="value", id.vars=c("jour", "REGION")) dayDataReg <- transform(dayDataReg,jour=as.Date(jour,origin='1899-12-30')) dayDataReg <- dayDataReg %>% add_column(type="Variation jour") dayDataReg$key <- fct_recode(dayDataReg$key, "hospitalisé"="hospJ", "décès"="dcJ", "réa"="reaJ", "sortie"="radJ") dayDataRegfiltre <- left_join(dayDataReg, reg2019) %>%filter(REGION > "10", REGION < "30") %>% select(-c(REGION)) %>% filter(key !="sortie") dataPrint <- dayDataRegfiltre fPrint() ggsave(file=paste("Région 1",dateTitre,".pdf")) ggsave(filename = "Région_1.pdf", path = "../LaTex/fig/") dayDataRegfiltre <- left_join(dayDataReg, reg2019) %>%filter(REGION > "30", REGION < "60") %>% select(-c(REGION)) %>% filter(key !="sortie") dataPrint <- dayDataRegfiltre fPrint() ggsave(file=paste("Région 2", dateTitre,".pdf")) ggsave(filename = "Région_2.pdf", path = "../LaTex/fig/") dayDataRegfiltre <- left_join(dayDataReg, reg2019) %>%filter(REGION > "60") %>% select(-c(REGION)) %>% filter(key !="sortie") dataPrint <- dayDataRegfiltre fPrint() ggsave(file=paste("Région 3", dateTitre,".pdf")) ggsave(filename = "Région_3.pdf", path = "../LaTex/fig/") ######################### ###Fin des régions ##### #########################