Changes between Version 2 and Version 3 of Calculating winter and summer temperatures per year


Ignore:
Timestamp:
Jun 15, 2010 3:41:30 PM (15 years ago)
Author:
celine
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Calculating winter and summer temperatures per year

    v2 v3  
    66Période estivale : juin, juillet, août, septembre (tel que défini dans 
    77 
    8 * Pour avoir la température hivernale pour chaque année par gridid : 
     8  * Pour avoir la température '''estivale''' pour chaque année par gridid : 
     9tapply(tmp$value[tmp$season=="summer"],list(tmp$gridid[tmp$season=="summer"],tmp$year[tmp$season=="summer"]),mean) 
     10 
     11  * Pour avoir la température '''hivernale''' pour chaque année par gridid : 
    912tapply(tmp$value[tmp$season=="winter"],list(tmp$gridid[tmp$season=="winter"],tmp$year[tmp$season=="winter"]),mean) 
    1013 
    11 * Pour avoir la température estivale pour chaque année par gridid : 
    12 tapply(tmp$value[tmp$season=="summer"],list(tmp$gridid[tmp$season=="summer"],tmp$year[tmp$season=="summer"]),mean) 
     14  * Mais c'est plus compliqué :  
     15En fait pour les "winter temperatures" on doit prendre le mois de décembre de l'année t et les mois de janvier et février de l'année t+1  et faire la moyenne sur ces trois mois. 
     16{{{ 
     17NNum<-length(levels(as.factor(tmp$Num))) 
     18Nyear<-length(as.numeric(min(tmp$year)):as.numeric(max(tmp$year))) 
     19tmpwinter<-array(NA,c(Ntmp,Nyear)) 
     20system.time( 
     21for(i in 1:NNum){ 
     22        for(j in (as.numeric(min(tmp$year))+1):as.numeric(max(tmp$year))){ 
     23                tmpwinter[i,j-as.numeric(min(tmp$year))+1]<-sum(tmp$value[tmp$month=="12"&tmp$year==(j-1)&tmp$Num==i], 
     24                                                   tmp$value[tmp$month=="1"&tmp$year==j&tmp$Num==i], 
     25                                                   tmp$value[tmp$month=="2"&tmp$year==j&tmp$Num==i])/3 
     26        } 
     27} 
     28) 
     29tmpwinter<-as.data.frame(tmpwinter) 
     30names(tmpwinter)<-paste("w",as.numeric(min(tmp$year)):as.numeric(max(tmp$year)),sep="") 
     31}}} 
    1332 
    14  
    15 * Mais c'est plus compliqué :  
    16 En fait pour les "winter temperatures" on doit prendre le mois de décembre de l'année t et les mois de janvier et février de l'année t+1  et faire la moyenne sur ces trois mois. 
    17  
    18  
    19