lizziezeng 发表于 2009-10-19 19:45 
求助各位大虾,现在有数据排列如下,
用户id 商品名称 购买数量
10001 A 12
10002 A 4
10002 C 10
10003 B 3
10003 D 9
一共有A\B\C\D 4种商品,如何在sas中实现:将以上数据转换为如下形式
用户id A的购买数量 B的购买数量 C的购买数量 D的购买数量
10001 12 0 0 0
10002 4 0 10 0
10003 0 3 0 9
遇到如上问题,请各位大虾赐教,在线等,急,谢过先~!
data a;
input x$ y$ z@;
cards;
10001 A 12
10002 A 4
10002 C 10
10003 B 3
10003 D 9
;run;
data b;set a;
array char _CHARACTER_;
array numr _NUMERIC_ s1-s4;
Do Over char;
If char='A' Then s1=z;
If char='B' Then s2=z;
If char='C' Then s3=z;
If char='D' Then s4=z;
End;Do Over numr;if numr=. then numr=0;end;
DROP Y Z;Run;
PROC SQL;
SELECT x label='用户ID' ,sum(s1) as s1 label='A的购买数量',sum(s2) as s2 label='B的购买数量'
,sum(s3) as s3 label='C的购买数量',sum(s4) as s4 label='D的购买数量' from b group by x; quit;