24.11.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!