码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-07-27 11:27:58      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:pat   utf8   format   guide   line   数据   pre   font   class   

在实际应用中,我们经常会把宽数据(一个患者一条观测)转化为长数据(一个患者多条观测)或者将长数据(一个患者多条观测)转换为宽数据(一个患者一条观测),在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》

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

标签:pat   utf8   format   guide   line   数据   pre   font   class   

原文地址:http://www.cnblogs.com/zhangzhangwhu/p/7243681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!