首页 > 代码库 > SAS笔记(8) 利用数组重构SAS数据集
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》
SAS笔记(8) 利用数组重构SAS数据集
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。