Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2010, 20h02   #1
Invité régulier
 
Astrid Genet
Inscription : novembre 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Astrid Genet

Informations forums :
Inscription : novembre 2010
Messages : 43
Points : 7
Points : 7
Par défaut Calcul d'un nombre de valeurs consécutives

Bonjour,

J'ai un fichier avec les variables suivantes:
Annee Mois Jour Temperature.
Pour chaque mois sur plusieurs années j'ai donc la température quotidienne. Je voudrais calculer une variable écologique qui est le nombre de jours sans gel par années, c'est à dire le nombre de jours CONSECUTIFS maximum par an où la variable Temperature est positive.
J'ai crée une variable Jour_Sans_Gel qui prend la valeur 1 quand Temperature est >0 et 0 sinon.
Mais comment calculer le nombre maximum de 0 consécutifs pour chaque année? Je suis vraiment coincée. Peut-être en faisant une boucle?

Merci!

Astrid
AstridG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 21h50   #2
Invité régulier
 
Astrid Genet
Inscription : novembre 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Astrid Genet

Informations forums :
Inscription : novembre 2010
Messages : 43
Points : 7
Points : 7
Bonjour,

Je viens apporter une réponse à ma propre question, peut-être pourra-t-elle un jour débloquer quelqu'un d'autre.

En fait, c'est tout bête. Il suffit de créer une variable (ici "cumul") avec impérativement un retain puisqu'on veut incrémenter. Ensuite on incrémente avec une condition relative dans mon cas à la variable "Jour_ssGel" qui est binaire (0 si il a gelé ou 1 si la température est positive).

Voici mon bout de code correspondant:

Code :
1
2
3
4
5
6
7
8
9
10
DATA Meteo2;
	SET Meteo2;
	retain cumul 0;
	IF Jour_ssGel = 1 then do;
		cumul=cumul+1;
	end;
	else do;
		cumul = 0;
	end;
run;
Astrid
AstridG est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h23.


 
 
 
 
Partenaires

Hébergement Web