lachance 发表于 2012-8-31 09:41 
如果不想transpose 后, tit 成为header , 那该怎么做呢?
Sometimes, the "tit" is not in English character, so we have to create a new variable to replace it.
Here is my way.
data t1;
input tit$ yr $ val;
cards;
a 2002 1
a 2003 2
a 2004 3
b 2002 9
b 2003 8
b 2004 7
c 2002 3
c 2003 5
c 2004 9
;run;
proc sort data = t1;
by tit;
run;
data t2 temp(keep = tit fid);
set t1;
by tit;
if first.tit then fid + 1;
run;
proc sort data = temp nodupkey; by _all_; run;
proc sort data = t2;
by yr fid;
run;
proc transpose data = t2 out = t3(drop = _NAME_);
id fid;
by yr;
var val;
run;
proc sql noprint;
select compress("_"||put(fid,8.)||'="'||tit||'"') into:vars_label separated by ' '
from temp;
quit;
data t4;
set t3;
label &vars_label.;
run;