• SAS笔记(8) 利用数组重构SAS数据集


    在实际应用中,我们经常会把宽数据(一个患者一条观测)转化为长数据(一个患者多条观测)或者将长数据(一个患者多条观测)转换为宽数据(一个患者一条观测),在R中我们可以利用Reshape2包来实现。在SAS中有两种实现方法:数组和TRANSPOSE。这一篇博文先讲解利用数组重构SAS数据,下一篇博文将介绍利用TRANSPOSE函数重构SAS数据。

    1.宽数据变长数据

    ***创建数据集
    DATA DIAGNOSE;
       INPUT @1  PATNO    2.
             @3  DATE     MMDDYY10. 
             @14 DX1 - DX3;
       FORMAT DATE MMDDYY10.;
    DATALINES;
    10/21/1999 1 2 .
    10/29/1999 2 . .
    11/11/2000 3 . .
    01/01/2000 1 2 3
    02/02/2000 3 2 .
    03/15/2000 4 . .
    ;
    
    ***将宽数据转化为长数据,不利用数组
    DATA NEW_DX;
       SET DIAGNOSE (DROP = DATE);
    
       DX = DX1;
       IF DX NE . THEN OUTPUT;
       DX = DX2;
       IF DX NE . THEN OUTPUT;
       DX = DX3;
       IF DX NE . THEN OUTPUT;
    
       KEEP PATNO DX;
    RUN;
    
    ***将宽数据转化为长数据,利用数组
    DATA NEW_DX;
       SET DIAGNOSE (DROP = DATE);
       ARRAY DXARRAY[3] DX1 - DX3;
    
       DO I = 1 TO 3;
          DX = DXARRAY[I];
          IF DX NE . THEN OUTPUT;
       END;
    
       KEEP PATNO DX;
    RUN;

    2.将长数据转化为宽数据

    参考资料:《Longitudinal Data and SAS: A Programmer's Guide》

  • 相关阅读:
    XML 的学习笔记3
    XML 的学习笔记2
    XML 的学习笔记1
    Tomcat 学习笔记2
    Tomcat 学习笔记1
    sol
    sol
    0、安装Ionic2
    ionic2 目录
    6、Angular Route 路由
  • 原文地址:https://www.cnblogs.com/zhangzhangwhu/p/7243681.html
Copyright © 2020-2023  润新知