Pratique de Sas Windows 9.2... Volume 1 - Ined
Pratique de Sas Windows 9.2... Volume 1 - Ined
Pratique de Sas Windows 9.2... Volume 1 - Ined
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Des fonctions liées aux dates<br />
• Intéressante est la nouvelle fonction nwkdom(nième occurence, jour-semaine, mois, année) qui<br />
permet <strong>de</strong> calculer par exemple la date du passage <strong>de</strong> la collecte <strong>de</strong>s encombrants : tous les<br />
premiers jeudi du mois ou celle <strong>de</strong> la paye car fixée le <strong>de</strong>rnier vendredi du mois<br />
Dans cette fonction,on part d’un jour-semaine selon la définition <strong>de</strong> <strong>Sas</strong> : le dimanche = le chiffre 1.<br />
data _null_;<br />
encombrant=nwkdom(1,5,8,2010);put encombrant eurdfwkx.;<br />
paie=nwkdom(5,6,12,2010);put paie eurdfwkx.;<br />
run;<br />
Jeudi 5 août 2010<br />
Vendredi 31 décembre 2010<br />
• J’avoue avoir peu compris l’utilité <strong>de</strong>s fonctions d’intervalle intget(date1,date2,date3)<br />
Intshift('intervalle') et intfit(date1,date2,'d' ou 'dt' ou 'obs')<br />
data _null_;<br />
d1='1jan2010'd;d2='28feb2010'd;d3='31<strong>de</strong>c2010'd;d4='1jan2011'd;<br />
d12=intfit(d1,d2,'d');put d12=;<br />
d13=intfit(d1,d3,'d');put d13=;<br />
d14=intfit(d1,d4,'d');put d14=;<br />
sh=intshift('week'); put sh=;run;<br />
d12=DAY58.52<br />
d13=WEEK52.69<br />
d14=YEAR<br />
sh=DAY<br />
• quelques modifications ont été faites à :<br />
Un 5 ème argument optionnel pour INTCK(interval, start-from, increment, )<br />
'D' discrete ou 'C' continuous pour une valeur d’alignement dans l’intervalle pour la position <strong>de</strong>s dates<br />
SAS<br />
Intck compte le nombre <strong>de</strong> semaines (à la mo<strong>de</strong> SAS commençant le dimanche week) ou (grâce au<br />
nouveau mot-clé iso 8601 weekv démarrant <strong>de</strong> façon standard le lundi auquel on a ajouté la spécification du<br />
2 ème jour weekv.2 donc le mardi.<br />
<strong>Sas</strong> a -dans les <strong>de</strong>ux cas- évalués ce nombre d’intervalles selon que la nouvelle spécification additionnelle<br />
était Continuous ou Discrete en 25 semaines ou 26 semaines.<br />
Le 1 er janvier était un vendredi et le 1 er juillet etait un jeudi<br />
data _null_;<br />
d1=intck('weekv.2','01jan2010'd,'01jul2010'd,'C');<br />
d2=intck('weekv.2','01jan2010'd,'01jul2010'd,'D');<br />
d3=intck('week','01jan2010'd,'01jul2010'd,'C');<br />
d4=intck('week','01jan2010'd,'01jul2010'd,'D');<br />
put d1 +2 d2 +2 d3 +2 d4 ; == > 25 26 25 26<br />
run;<br />
La base <strong>de</strong> calcul dans la fonction datdif(début,fin,base) s’est enrichie et propose maintenant<br />
'30/360' 'ACT/ACT' 'ACT/360' 'ACT/365'<br />
INED Wielki 187