Bonjour,
Je débute avec SAS et je bloque sur un programme que j'ai besoin de faire.
J'ai une table contenant des données climatiques quotidiennes de deux années consécutives avec les colonnes suivantes :
date_in tmin tmax rain vp humid
J'ai converti mes dates en nombre reconnu par SAS (01/01/1998=13880).
Mon problème est le suivant :
J'aimerais ajouter, pour chaque paramètre climatique, une colonne correspondant à la moyenne des valeurs des 50 jours suivants.
En clair, pour tmin j'aimerais rajouter la colonne average_tmin.
La première observation de average_tmin serait la moyenne des températures allant de la date 1 à la date 50.
La 2ème observation de average_tmin serait la moyenne des valeurs allant de la date 2 à la date 51.
Etc.
Pour cela, j'ai pour l'instant rédigé le programme suivant :
J'ai conscience que mettre un PROC dans une boucle ne fonctionne pas donc je cherche une alternative...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 DATA climate_av; set climate; keep tmin2 tmax2 rain2 vp9 humid9 date_in; DO i=1 to 1096; /*J'ai 1096 jours de données climatiques, soit 1096 lignes dans climate*/ proc means data=climate_av (FIRSTOBS=1+i OBS=50+i) mean; var tmin2; /*Tentative 1*/ run; *av_tmin = mean(tmin2(FIRSTOBS=1+i OBS=50+i)); /*Tentative2*/ END; PROC print data=climate_av;
Sinon je pensais utiliser la fonction mean mais je ne sais pas comment l'appliquer aux valeurs qui m'intéressent...
Est-ce que quelqu'un pourrait me donner des pistes s'il vous plait ?
Partager