操作纵向数据,将 2 列合并并转置为宽

  • 本文关键字:合并 转置 数据 操作 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。(此外,我需要跨几个变量&~ 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;

相关内容

  • 没有找到相关文章

最新更新