按照你给的例子,可以用下面的程序。 需要注意一点,txt 后面$10.很重要。如果你将来得到的txt的长度超过10,那么你就必须事先调整这个数字。
data T;
input id gid txt $10.;
datalines;
1 1 a
2 1 b
3 1 c
4 2 e
5 2 f
6 3 g
;
run;
proc sort data = T;
by gid;
run;
data T;
set T;
if _n_=1 then
p=txt;
retain p;
if gid=lag(gid) then
p = cats(p,txt);
else
p=txt;
drop id;
run;
data t_sub;
set T;
by gid;
last=last.gid;
if last=1;
drop txt;
run;
data t_sub;
set t_sub;
drop last;
id=_n_;
rename p=txt;
run;
quit;