我需要操纵纵向数据,以便能够在逻辑回归中使用。
目前数据为:
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。(此外,我需要跨几个变量&~ 5000人)。
有什么建议吗?谢谢!
在过程转置中,ID在BY语句中指定我们只需要在输出数据集中对每个不同的ID值进行一次观察。ID语句中的Period表示要在输出数据集中为每个不同的Period值创建新的变量。要转置的变量(Smoke)在VAR语句中指定。使用前缀=和后缀=选项来控制如何命名新变量
有关过程转置语法的介绍,请参阅本文。
proc transpose data=have out=want (drop=_name_) prefix=Period suffix=Smoke;
by ID;
id Period;
var Smoke;
run;