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

时间:2014-03-04 11:34:38

标签: 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 600 600 . .
1 2 xyz 200 . 200 .
1 3 xyz 300 . 300 .
2 1 def . . 400
2 2 def . . 500

我尝试用proc转置来解决这个问题,但由于每个客户有多个id(我使用选项let),SAS会丢弃值。 如果有人可以提供帮助,我会很高兴!

2 个答案:

答案 0 :(得分:1)

您可能只需要在proc转置中使用by语句。

答案 1 :(得分:1)

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;