{"word_count": 199, "character_count": 2270}
Ce matin en cours, on a vu un peu comment manipuler des séries temporelles, et en particulier comme jouer avec l'échelle de temps (passer de données hebdomadaire à de données mensuelles, par exemple).Pour commencer, travaillons un peu sur les données extraites de google.fr/trends/ par exemple sur le mot clé fièvre,report = read.csv("http://freakonometrics.free.fr/report-fievre.csv",  skip=6,header=FALSE,nrows=626) X=report$V2 plot(X,type="l")Au lieu d'avoir un vecteur, on peut créer un format de série temporelle (hebdomadaire ) X_h=ts(X,start=c(2004,3),frequency=52) plot(X_h)On va essayer d'agréger les données pour les rendre mensuelles date1=substr(as.character(report$V1),1,10) date2=substr(as.character(report$V1),14,23)  d1=as.Date(date1,"%Y-%m-%d") d2=as.Date(date2,"%Y-%m-%d") d1[2]-d1[1] Vect_J=Vect_M=Vect_X=Vect_A= NULL for(i in 1:length(d1)){   jours = seq(d1[i],d2[i],length=7)   mois = as.POSIXlt(jours)$mon+1   annees = as.POSIXlt(jours)$year+1900   donnees = rep(X[i],7)   Vect_J = c(Vect_J,jours)   Vect_M = c(Vect_M,mois)   Vect_A = c(Vect_A,annees)   Vect_X = c(Vect_X,donnees) } base=data.frame(J=Vect_J,M=Vect_M,                 A=Vect_A,X=Vect_X) head(base) base$AM = base$A*100+base$M head(base) Y=tapply(base$X,as.factor(base$AM),mean) Z=ts(as.numeric(Y[1:144]), start=c(2004,1),frequency=12) plot(Z)On peut superposer les deux d'ailleurs (il y a peut être un léger décalage sur la série hebdomadaire)plot(X_h,col="blue")lines(as.numeric(time(Z)),as.numeric(Z),col="red",lwd=2)Sur ecad.eu on peut récupérer la pluviométrie, à Rennes, depuis 1927, en données journalièrepluie=read.table("RR_SOUID104924.txt",skip=21,sep=',',header=TRUE) base=pluie[pluie$Q_RR==0,] date1=as.Date(   as.character(base$DATE),"%Y%m%d") X=base$RR plot(date1,X,type="h")Là encore, on peut agréger pour avoir des données mensuelles (de moyennes journalières, par mois) mois = as.POSIXlt(date1)$mon+1 annees = as.POSIXlt(date1)$year+1900 AM = annees*100+mois Y=tapply(X,as.factor(AM),mean) Z=ts(as.numeric(Y),start=c(1927,1),frequency=12) plot(Z)On peut d'ailleurs regarder, ensuite, par mois, le niveau de pluie,mois = time(Z)-trunc(time(Z))+1/24plot(mois,as.numeric(Z))Z_m=tapply(as.numeric(Z),as.factor(mois),mean)lines(as.numeric(names(Z_m)),Z_m,lwd=2,col="red")