1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
DATA prescription;
input Patient :8. datedeb :date9. datefin :date9. medicament $1.;
format datedeb datefin ddmmyy8.;
cards;
1 01feb14 28feb14 A
1 01mar14 01apr14 A
1 01mar14 01jun14 B
1 01may14 01jul14 A
1 01jun14 01aug14 C
1 01jun14 01sep14 D
2 01mar14 01apr14 A
2 01jun14 01aug14 C
3 01may14 01jul14 A
3 01jun14 01aug14 B
3 15apr14 01sep14 C
;
run;
data compar (keep=Patient datedeb datefin medicament medicament_1 datefin__) ;
set prescription (rename=(Patient=Patient_1 datedeb=datedeb_1
datefin=datefin_1 medicament=medicament_1)) ;
j+1 ;
do i=j to nbs ;
set prescription nobs=nbs point=i ;
if Patient=Patient_1 then do ;
datedeb=max(datedeb, datedeb_1) ;
datefin=min(datefin, datefin_1) ;
do while (datedeb < datefin);
datefin__=intnx('month',datedeb,1) ;
output ;
datedeb=intnx('month',datedeb,1) ;
end ;
end;
end;
format datefin__ ddmmyy8.;
run; |
Partager