- data input;
- input id name $ jy2 $ jieguo cishu DATE;
- informat name $10. jy2 $10. DATE yymmdd10.;
- format DATE yymmdd10.;
- cards;
- 1 郭锐 LDLC 3.57 1 2010-4-6
- 1 郭锐 TRIG 1 1 2010-4-6
- 1 郭锐 HDLC 1.3 1 2010-4-6
- 1 郭锐 APOA 1.1 1 2010-4-6
- 1 郭锐 APOB 0.82 1 2010-4-6
- 1 郭锐 LPa 281.68 1 2010-4-6
- 1 郭锐 CHOL 5.34 1 2010-4-6
- 2 唐启通 ALP 70 2 2010-3-4
- 2 唐启通 AST 30 2 2010-3-4
- 2 唐启通 BUN 6.39 2 2010-3-4
- 2 唐启通 URIC 382 2 2010-3-4
- 3 朱昕明 TRIG 5.19 1 2009-10-22
- 3 朱昕明 HDLC 0.98 1 2009-10-22
- 3 朱昕明 CREA 84 1 2009-10-22
- 3 朱昕明 ALP 75 1 2009-10-22
- 3 朱昕明 AST 55 1 2009-10-22
- 3 朱昕明 BUN 3.15 1 2009-10-22
- 3 朱昕明 URIC 349 1 2009-10-22
- 3 朱昕明 GLUC 4.94 1 2009-10-22
- 3 朱昕明 ADA 12 1 2009-10-22
- 3 朱昕明 APOA 1.41 1 2009-10-22
- 3 朱昕明 APOB 1.17 1 2009-10-22
- 3 朱昕明 LPa 31.68 1 2009-10-22
- 3 朱昕明 CHOL 7.61 1 2009-10-22
- 3 朱昕明 APOA 1.1 2 2012-1-12
- 3 朱昕明 APOB 1.24 2 2012-1-12
- 3 朱昕明 LPa 55.81 2 2012-1-12
- 3 朱昕明 CHOL 8.07 2 2012-1-12
- 4 周守源 APOA 0.92 4 2011-3-1
- 4 周守源 APOB 0.88 4 2011-3-1
- 4 周守源 LPa 304.53 4 2011-3-1
- 4 周守源 CHOL 6.71 4 2011-3-1
- 4 周守源 APOB 0.88 5 2011-3-15
- 4 周守源 LPa 304.53 5 2011-3-15
- 4 周守源 CHOL 6.71 6 2012-3-18
- 4 周守源 GGT 35 6 2012-3-18
- ;
- run;
- proc sql noprint;
- create table input2 as
- select distinct a1.name,a1.jy2,a1.jieguo,a1.date,a1.min_date from
- (select id,min(date) as min_date,name,jy2,jieguo,date from input group by id) as a1
- inner join
- (select id,count(*) as nbr,date from
- (select distinct id,date from input) group by id) as a2
- on a1.id=a2.id & a2.nbr>=2 & (a2.date-a1.min_date=0 or a2.date-a1.min_date>365) & a1.date=a2.date
- order by a1.name,a1.date
- ;
- quit;
- data input3;
- set input2;
- by name date;
- retain tmp tmp_dt;
- if first.name then do;
- tmp=1;
- tmp_dt=date;
- end;
- if tmp_dt~=date then do;
- tmp=tmp+1;
- tmp_dt=date;
- end;
- length tmp_name $10.;
- tmp_name=compress(jy2||tmp);
- format min_date yymmdd10.;
- run;
- proc transpose data=input3 out=output(drop=_name_);
- by name min_date;
- id tmp_name;
- var jieguo;
- run;