其实楼上已经给出了很简洁、很棒的coding了!

下面是另一种方法,用Data Step去做,供参考,也欢迎各位大侠、高手指正!
data test_1 (drop=c1 c2 c3 i);
set test;
array Cs(3) c1-c3;
do I=1 to 3;
if not missing (Cs(I)) then do;
Number=Cs(I);
output;
end;
end;
run;
proc transpose data=test_1 out=test_get (drop=_name_) prefix=c;
by id c;
var Number;
run;
希望会对你有所帮助,加油!

[em44]