SAS笔记 利用数组重构SAS数据集
Posted Jensen Zhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAS笔记 利用数组重构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》
以上是关于SAS笔记 利用数组重构SAS数据集的主要内容,如果未能解决你的问题,请参考以下文章