SAS进阶《深入解析SAS》之对多数据集的处理

1. 数据集的纵向串接:

数据集的纵向串接指的是,将两个或者多个数据集首尾相连,形成一个新的数据集。
据集的横向合并:
数据集的横向合并,指的是将两个或者多个数据集根据某种原则横向合并起来,形成新的数据集。

2. 数据集的纵向串接两种方法:1)使用SAS DATA步的SET语句。2)使用SAS过程步的APPEND过程。

2.1. 使用SET步纵向串接形式如下:
DATA 新数据集;
SET 数据集1 数据集2 <数据集3 数据集4 ...>;
BY 变量1 <变量2 变量3 变量4...>;
RUN; 使用APPEND过程
PROC APPEND BASE=主数据集 <DATA=追加数据集> <FORCE>;
2.2. 使用APPEND过程,SAS不会处理主数据集中的观测,而是直接将追加数据集的观测添加到主数据集最后一条观测后面,且变量仅包含主数据集中的变量。

3. 数据集的横向合并使用MERGE的两种情况:

不使用BY语句合并,也称为一对一合并。
DATA WORK.COMBINED;
MERGE WORK.DATA1 WORK.DATA2;
RUN;
一对一合并原则:1)新数据集的第一条观测包含各个输入数据集中第一条观测的信息,第二条观测包含各个数据集中第二条观测的信息,不足的观测用缺失值不足。2)新数据集含有的观测数为所有输入数据集的最大观测是数。 使用BY语句合并,也称为匹配合并。
DATA WORK.COMBINED;
MERGE WORK.DATA1 WORK.DATA2;
BY Year;
RUN;

4. 使用数据集选项IN=操作观测

数据集选项IN=可以运用在SET、MERGE、MODIFY、UPDATE语句中的任何数据集后面。

5. 数据集的更新UPDATA

DATA 新数据集;
UPDATA 主数据集 更新数据集
<UPDATATE=MISSINGCHECK | NOMISSINGCHCK>;
BY 变量1 <变量2 变量3 变量4...>;
RUN;

6. UPDATE语句和MERGE与的区别:

1)UPDATA语句只能操作两个数据集;MERGE语句可以对两个或者两个以上数据集进行操作。
2)使用UPDATA语句时必须使用BY语句;MERGE语句在不使用BY语句时也可以按观测号进行一对一合并。
2)在处理缺失值时,UPDATA语句可以控制是否用缺失值对主数据集进行替换;MERGE语句中后一数据集中的缺失值一定能会覆盖前一数据集中的值。
4)当BY变量值在后一数据集或者更新数据集中不唯一时,UPDATA语句和MERGE语句的处理方式不一样。

7. 数据集的更改

7.1 单个数据集的更改MODIFY语句
DATA 原数据集;
MODIFY 原数据集;
RUN;
7.2 两个数据集的更改MODIFY语句
DATA 主数据集;
MODIFY 主数据集 修改数据集;
BY 变量1 <变量2 变量3 ...>;
RUN;

SAS进阶《深入解析SAS》之对多数据集的处理的更多相关文章

  1. SAS进阶《深入分析SAS》之数据汇总和展现

    SAS进阶<深入分析SAS>之数据汇总和展现 1. 通过Print过程制作报表 proc print <data=数据集>; run; 选项: obs=修改观测序号列标签 no ...

  2. SAS进阶《深入解析SAS》之SAS数据挖掘的一般流程

    SAS进阶<深入解析SAS>之SAS数据挖掘的一般流程 1. 所谓数据挖掘,是指通过对大量的数据进行选择.探索与建模,来揭示包含在数据中以前不为人所知的模式或规律,从而为商业活动或科学研究 ...

  3. SAS进阶《深入解析SAS》之开发多语言支持的SAS程序

    SAS进阶<深入解析SAS>之开发多语言支持的SAS程序 1. 多语言支持的应用程序是指该程序在世界给第使用时,其能够处理的数据,以及处理数据的方式.信息展现的方式都符合当地的语言.文化习 ...

  4. SAS进阶《深入解析SAS》之Base SAS基础、读取外部数据到SAS数据集

    SAS进阶<深入解析SAS>之Base SAS基础.读取外部数据到SAS数据集 前言:在学习完<SAS编程与商业案例>后,虽然能够接手公司的基本工作,但是为了更深入的SAS学习 ...

  5. SAS学习笔记51 SAS数据集

    结构 SAS数据集是关系型的,包含两个部分:描述部分(变量)和数据部分(观察值) 形式 SAS系统中共有两种类型的数据集: 1.SAS 数据文件(SAS datafiles) 2.SAS 数据视窗(S ...

  6. SAS学习笔记13 SAS数据清洗和加工(续)

    查找缺失值 cha[*]和num[*]是建立数组cha和num,但不指定数组中的元素数 自动变量_character_表示数据集中的所有字符型变量 自动变量_numeric_表示数据集中的所有数值型变 ...

  7. sas 命令行打开SAS IDE 的代码

    "C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -CONFIG "C:\Program Files\SASHom ...

  8. SAS学习笔记50 SAS数据集索引

    在没有索引的情况下,SAS是一条接一条的扫描观测:有索引时,直接跳到该索引对应的观测所在位置.总结一句话就是:节省时间,节省内存,提高效率 当然并不是任何情况下使用索引都能提高工作效率,因为建立索引本 ...

  9. SAS学习笔记40 SAS程序运行过程

    当我们提交运行一个DATA步程序后,具体发生了什么事情. SAS程序与其他程序一样,在运行时都要经过两个阶段:编译(Compilation).执行(Execution) 程序首先经过编译阶段,该阶段主 ...

随机推荐

  1. JavaSE 学习笔记之网络编程(二十三)

    端口: 物理端口: 逻辑端口:用于标识进程的逻辑地址,不同进程的标识:有效端口:0~65535,其中0~1024系统使用或保留端口. java 中ip对象:InetAddress. import ja ...

  2. Android layer-list(1)

     Android layer-list(1) Android layer-list,顾名思义,实现列表组合后形成的图层,写一个例子. activity_main.xml文件: <?xml v ...

  3. Codeforces 158B (数学)

    B. Mushroom Scientists time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  4. WINDOWS下调用GetTokenInformation的奇怪之处--两次调用

    就是用getLastErr可以得到错误号,同时,会将需要的长度写到参数里,再进行第二次调用,以此来节约内存空间. 神奇的长见识了. 相关说法如下: ====================== The ...

  5. 这段百度问答,对我相关有对啊!!!----如何获取Windows系统登陆用户名

    如何获取Windows系统登陆用户名 http://zhidao.baidu.com/link?url=Hva9PkVwYZv8KSEWftSqTWe8fqM1dhoq59BurnfADmcOvFjF ...

  6. Sublime Text 3配置支持Markdown编辑

    继上一篇http://www.cnblogs.com/EasonJim/p/7119304.html文章安装好之后,对Markdown支持需要做如下处理: 1.按下[Ctrl]+[Shift]+[P] ...

  7. 让mongodb执行js文件

    环境: Linux js代码: 循环删除表中的数据: clear-mongodb-dialog.js print('=========BEGIN=========='); for(var i of [ ...

  8. Android中关于横竖屏问题

    一.屏幕的方向可以在AndroidManifest.xml文件中通过设置screenOrientation属性来实现, screenOrientation用来指定Activity的在设备上显示的方向, ...

  9. 【转】webview的几个问题

    我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题.就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来.有些是老生常谈,有些则是个人摸索得出解决方 ...

  10. 面向对象软件工程与UML

    软件工程基本概念 软件危机 软件的功能.规模及复杂性与日俱增,软件的复杂性达到了它的开发者难以控制的程度 这种情况导致了严重的后果: 软件可靠性下降 开发效率低下 维护极为困难 这使软件开发者陷入困境 ...