用proc transpose 简单些, 用 array in data step 也可以做。
data a;
input code $ date : yymmdd10. price;
format date yymmdd10.;
cards;
000001 2007-10-16 15
000001 2007-10-17 16
000001 2007-10-18 14
000001 2007-10-19 15
000002 2007-10-15 19
000002 2007-10-16 17
000002 2007-10-17 19
000002 2007-10-18 12
000002 2007-10-19 19
;
run;
proc sort data=a;
by date code;
run;
proc transpose data=a out=b prefix=code;
id code;
by date;
var price;
run;
proc print data=b;
run;