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

  1. SAS笔记

    SAS基础知识 SAS里面的PROC一览 The ACECLUS Procedure : 聚类的协方差矩阵近似估计(approximate covariance estimation for clus ...

  2. SAS中常见的数组函数

    SAS中常见的数组函数有: dim dimk hbound hboundk lbound lboundk 数组函数计萁数组的维数.上下界,有利于写出可移植的程序,数组函数包括:dim(x) 求数组x第 ...

  3. 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第13章 - 利用PCA来简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. ...

  4. 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第7章 - 利用AdaBoost元算法提高分类性能. 核心思想 在使用某个特定的算法是, ...

  5. matlab学习笔记12单元数组和元胞数组 cell,celldisp,iscell,isa,deal,cellfun,num2cell,size

    一起来学matlab-matlab学习笔记12 12_1 单元数组和元胞数组 cell array --cell,celldisp,iscell,isa,deal,cellfun,num2cell,s ...

  6. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  7. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

  8. RX学习笔记:JavaScript数组操作

    RX学习笔记:JavaScript数组操作 2016-07-03 增删元素 unshift() 在数组开关添加元素 array.unshift("value"); array.un ...

  9. Ice笔记-利用Ice::Application类简化Ice应用

    Ice笔记-利用Ice::Application类简化Ice应用 作者:ydogg,转载请申明. 在编写Ice相关应用时,无论是Client还是Server端,都必须进行一些必要的动作,如:Ice通信 ...

随机推荐

  1. Fireworks(whole page)

    <!DOCTYPE HTML> <html> <head> <title>Canvas 实现放烟花特效</title> <meta c ...

  2. GridView内容详解(转载)

    GridView内容详解(转载) GridView是ASP.NET界面开发中的一个重要的控件,对GridView使用的熟练程度直接影响软件开发的进度及功能的实现.(车延禄)GridView的主要新特性 ...

  3. JS使用模板快速填充HTML控件数据

    function formatTemplate(dta, tmpl) { var format = { name: function(x) { return x ; } }; return tmpl. ...

  4. Progressive Web App是一个利用现代浏览器的能力来达到类似APP的用户体验的技术——不就是chrome OS吗?

    什么是Progressive Web App? Progressive Web App是一个利用现代浏览器的能力来达到类似APP的用户体验的技术,由Google实现,让浏览器打开的网址像APP一样运行 ...

  5. PHP中怎样让数组以字母为键值来递增

    //小写字母 $key = 97; $arr = array(); for($i=1;$i<=26;$i++){ $arr[chr($key)] = $i; $key++; } print_r( ...

  6. curl常用命令行总结

    curl 有时HTTP服务接口写完,需要验证下接口功能,这个使用用curl最合适了 curl 全称 command line url viewer curl www.taobao.com curl w ...

  7. 源码安装postgres10 in centos6.4

    文件夹路径 程序目录 /usr/pgsql 数据目录/usr/local/pgdata 准备工作 获得源码 mkdir /opt/soft_bak cd /opt/soft_bak wget http ...

  8. C++内存使用机制基本概念详解

    .程序使用内存区 一个程序占用的内存区一般分为5种: ()全局.静态数据区:存储全局变量及静态变量(包括全局静态变量和局部静态变量) ()常量数据区:存储程序中的常量字符串等. ()代码区:存储程序的 ...

  9. 机器学习:YOLO for Object Detection (一)

    最近看了基于CNN的目标检测另外两篇文章,YOLO v1 和 YOLO v2,与之前的 R-CNN, Fast R-CNN 和 Faster R-CNN 不同,YOLO 将目标检测这个问题重新回到了基 ...

  10. 【集成学习】lightgbm参数介绍(sklearn)

    #  XGBoost和LightGBM部分参数对比表: lightgbm.sklearn参数介绍(官网)