Données de pluies - compter une série

Voir le sujet précédent Voir le sujet suivant Aller en bas

Données de pluies - compter une série

Message  Fred le Ven 25 Mar - 21:11

J'ai besoin d'une petite astuce stata. Je suis sur que ça n'a rien de compliqué mais j'ai le cerveau en compote en cette fin de semaine. Donc, j'ai des données de pluies, une information tous les 10 jours (decade), soit trois informations par mois. Je sais lors de quelles décades il n'a plu et je voudrais calculer à chaque fois la durée de la période sans pluie. Par exemple, sur mes 3 premières observations, il y a deux décades de suites où il n'a pas plu. Je voudrais créer la variable qui m'indiquerait pour chaque décade où il ne pleut pas, combien de décades consécutives il n'a pas plus (en comptant la présente décade bien sur). En gros, j'ai besoin de construire la variable "cequejeveux" du tableau ci dessous.



Merci d'avance!
avatar
Fred
Admin

Messages : 370
Date d'inscription : 17/11/2009
Age : 33
Localisation : Doctorant

Voir le profil de l'utilisateur http://themanwhobloggedtheworld.blogspot.com/

Revenir en haut Aller en bas

Re: Données de pluies - compter une série

Message  Marie-Ch le Lun 28 Mar - 18:06

Hé hé, pas si simple ce petit problème... en tout cas j'ai du mobiliser pas mal de neurones censée être en forme en ce début de semaine...
La mauvaise piste est de considérer les données par mois, et j'avais commencé par là. Sauf que ce qui nous intéresse c'est les séquences de 0 et de 1 de la variable paspluie, quelque soit le mois et l'année dans laquelle on se trouve.
Voilà une solution qui doit fonctionner, mais comme toujours avec stata, plusieurs chemins mènent à Rome....

sort ville annee mois decade
D'abord on s'assure que les données sont fixées dans le bon ordre et n'en bougent plus.

gen cequetuveux=. if paspluie==1
replace cequetuveux=1 if paspluie==0 & cequetuveux[_n-1]==.
replace cequetuveux=2 if paspluie==0 & cequetuveux[_n-1]==1
replace cequetuveux=3 if paspluie==0 & cequetuveux[_n-1]==2
replace cequetuveux=4 if paspluie==0 & cequetuveux[_n-1]==3

....

A partir du moment où l'ordre des observations est bien fixé, l'idée est donner progressivement les valeurs à la variable cequetuveux, en regardant la valeur précédente. Si il pleut dans un décade, on donne la valeur ".". Et ensuite si le décade suivant il ne pleut pas alors on donnera la valeur 1 sous la condition que paspluie==0 et que le décade précédent n'avait pas de pluie, c'est à dire cequetuveux==. De même, on donnera la valeur 2, toujours si paspluie==0 et si la valeur précédente était 1.... A priori il faut mettre autant de ligne de commandes possible que de décade sans pluies à la suite, probablement bien plus que 3 donc.
Le tout devrait aussi être précédé d'un bysort ville dans le cas probable de plusieurs localités.

En espérant que ça fonctionne !

Marie-Ch

Messages : 77
Date d'inscription : 09/11/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Données de pluies - compter une série

Message  Fred le Lun 28 Mar - 19:00

Ca fonctionne à la perfection. C'est brillant.

Merci!
avatar
Fred
Admin

Messages : 370
Date d'inscription : 17/11/2009
Age : 33
Localisation : Doctorant

Voir le profil de l'utilisateur http://themanwhobloggedtheworld.blogspot.com/

Revenir en haut Aller en bas

Re: Données de pluies - compter une série

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum