SAS and Food security monitoring : Ajouter la variable décade dans un fichier journalier de données.
Ajouter la variable décade dans un fichier journalier de données.
La manipulation des dates dans SAS s’effectue avec plusieurs routines très puissantes.
Elle nécessite aussi quelques connaissances dans les formats
et les informats de SAS.
Si dans une dataset, il ya une variable date de type DDMMYY
(01011993 ou 1 janvier 1993), SAS permet de calculer la décade correspondante à cette date.
Exemple : création d'une table contenant les dates du
1/01/1993 au 9/06/2012 soit 7100 jours (qu'est je foutu pendant ces 7100 jours
!;). La routine est la
suivante
-----------------
data datedek;
do i =
'01jan1993'd to '9Dec2009'd;
output;
end;
run;
-----------------------
Utilisation de la fonction INTCK et du format TENDAY
La fonction INTCK permet de calculer l’intervalle de temps
entre deux périodes en année, mois, trimestre, semaines ou jours, décade,
etc.. (Cf un des meilleurs blog francophones de SAS : http://thesasreference.wordpress.com/category/les-fontions/intck-fontions/).
Sa syntaxe est INTCK (Intervalle, date de début, date de
fin). Intervalle peut être une expression, un caractère ou une variable. Pour
les décades correspondant au 1er, 11ème et 21ème
jour de chaque mois, SAS utilise TENDAY
.
Pour le calcul de la variable décade, l’année a été dans un
premier temps récupérée dans la variable i ci-dessus pour récréer une variable de
début de chaque année. Cette variable
sert de paramètre pour la date de début .
Le paramètre date de fin étant i. Ayant considéré la date de
début de l’année considérée (celle de i), il faut réajouter i à la décade pour
avoir la décade correcte. mdy(1,1,Year(i))
utilise la fonction MDY qui permet de convertir le mois, le jour et l’année en
un date SAS. Par exemple MDY (4,8,1983) retourne la date SAS ‘3AUG83’D.
******************Calcul de la dékad dans un fichier ayant plusieurs années**** ;
data decade;
set datedek;
DEK= intck('tenday', mdy(1,1,Year(i)),i)+1;
run;
-------------------------------
L’avantange de INTCK dans
cette séquence est que le calcul est correct même en cas de jours manquant dans la table de données. Les utilisations
ultérieures sont les synthèses décadaires très utilisées dans le suivi des
campagnes agricoles pour la sécurité alimentaire
Commentaires