Sas 从一个变量中创建不同的变量

Sas 从一个变量中创建不同的变量,sas,Sas,我试图从一个变量中提取不同的变量。如果您查看我的数据,就会清楚: data test; input customer date id volume; 1 1 abc 500 1 2 abc 600 1 2 xyz 200 1 3 xyz 300 2 1 def 400 2 2 def 500 我的目标是为每个id创建不同的变量,以便数据集如下所示: customer date id volume id_abc id_xyz id_def 1 1 abc 500 500 . . 1 2 abc

我试图从一个变量中提取不同的变量。如果您查看我的数据,就会清楚:

data test;
input customer date id volume;
1 1 abc 500
1 2 abc 600
1 2 xyz 200
1 3 xyz 300
2 1 def 400
2 2 def 500
我的目标是为每个id创建不同的变量,以便数据集如下所示:

customer date id volume id_abc id_xyz id_def
1 1 abc 500 500 . . 
1 2 abc 600 600 . .
1 2 xyz 200 . 200 .
1 3 xyz 300 . 300 .
2 1 def . . 400
2 2 def . . 500
我试图用proc transpose解决这个问题,但由于每个客户都有多个id(我使用选项let),SAS会删除值。
如果有人能帮忙,我会很高兴的

您可能只需要在proc transpose上使用
by
语句。

by
语句和
id
语句即可获得正确的标签

data test;
input customer date id $ volume;
idvar = cats("id_",id);
datalines;
1 1 abc 500
1 2 abc 600
1 2 xyz 200
1 3 xyz 300
2 1 def 400
2 2 def 500
;;;;
run;
proc transpose data=test out=want ;
by customer date id;
var id;
id idvar;
run;