操纵纵向数据,结合2 Col&转置到广角

时间:2015-09-27 15:48:21

标签: sas

我需要操纵纵向数据才能在逻辑回归中使用。

目前的数据是:

ID  Period Smoke
1     1      1
1     2      1
1     3      1
2     1      0
2     2      1
2     3      1 
3     1      1
3     2      1
3     3      0

但我需要将其操纵为这种形式:

ID    Period1Smoke   Period2Smoke    Period3Smoke
1           1              1              1
2           0              1              1
3           1              0              0

基本上,我需要以某种方式结合Period&吸烟,然后通过ID转换为宽格式。 (另外,我需要在几个var& ~5,000个人身上做到这一点。)

有什么建议?谢谢!

1 个答案:

答案 0 :(得分:0)

在proc转置中,ID在BY语句中指定我们只需要在输出数据集中为每个不同的ID值进行一次观察。 ID语句中的句点表示将在输出数据集中为Period的每个不同值创建新变量。要转置的变量(Smoke)在VAR语句中指定。使用prefix =和suffix = options来控制如何命名新变量。

有关proc转置语法的介绍,请参阅此this论文。

proc transpose data=have out=want (drop=_name_) prefix=Period suffix=Smoke;
    by ID;
    id Period;
    var Smoke;
run;