我需要处理纵向数据,以便能够在逻辑回归中使用。
目前数据为:
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
因此,本质上,我需要以某种方式组合句点和烟雾,然后通过ID转置为宽格式。(我还需要在几个var & ~5,000个人之间执行此操作。)
有什么建议吗?谢谢!
发布于 2016-03-19 01:30:51
在proc转置中,ID在BY语句中指定我们只需要在输出数据集中为每个不同的ID值创建一个观察值。ID语句中的Period在ID语句中指示将在输出数据集中为每个不同的周期值创建新变量。转置的变量(Smoke)在VAR语句中指定。使用prefix=和suffix=选项来控制新变量的命名方式。
有关proc转置语法的介绍,请参阅此this文章。
proc transpose data=have out=want (drop=_name_) prefix=Period suffix=Smoke;
by ID;
id Period;
var Smoke;
run;https://stackoverflow.com/questions/32809787
复制相似问题