SAS进阶《深入解析SAS》之对多数据集的处理
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》之对多数据集的处理的更多相关文章
- SAS进阶《深入分析SAS》之数据汇总和展现
SAS进阶<深入分析SAS>之数据汇总和展现 1. 通过Print过程制作报表 proc print <data=数据集>; run; 选项: obs=修改观测序号列标签 no ...
- SAS进阶《深入解析SAS》之SAS数据挖掘的一般流程
SAS进阶<深入解析SAS>之SAS数据挖掘的一般流程 1. 所谓数据挖掘,是指通过对大量的数据进行选择.探索与建模,来揭示包含在数据中以前不为人所知的模式或规律,从而为商业活动或科学研究 ...
- SAS进阶《深入解析SAS》之开发多语言支持的SAS程序
SAS进阶<深入解析SAS>之开发多语言支持的SAS程序 1. 多语言支持的应用程序是指该程序在世界给第使用时,其能够处理的数据,以及处理数据的方式.信息展现的方式都符合当地的语言.文化习 ...
- SAS进阶《深入解析SAS》之Base SAS基础、读取外部数据到SAS数据集
SAS进阶<深入解析SAS>之Base SAS基础.读取外部数据到SAS数据集 前言:在学习完<SAS编程与商业案例>后,虽然能够接手公司的基本工作,但是为了更深入的SAS学习 ...
- SAS学习笔记51 SAS数据集
结构 SAS数据集是关系型的,包含两个部分:描述部分(变量)和数据部分(观察值) 形式 SAS系统中共有两种类型的数据集: 1.SAS 数据文件(SAS datafiles) 2.SAS 数据视窗(S ...
- SAS学习笔记13 SAS数据清洗和加工(续)
查找缺失值 cha[*]和num[*]是建立数组cha和num,但不指定数组中的元素数 自动变量_character_表示数据集中的所有字符型变量 自动变量_numeric_表示数据集中的所有数值型变 ...
- sas 命令行打开SAS IDE 的代码
"C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -CONFIG "C:\Program Files\SASHom ...
- SAS学习笔记50 SAS数据集索引
在没有索引的情况下,SAS是一条接一条的扫描观测:有索引时,直接跳到该索引对应的观测所在位置.总结一句话就是:节省时间,节省内存,提高效率 当然并不是任何情况下使用索引都能提高工作效率,因为建立索引本 ...
- SAS学习笔记40 SAS程序运行过程
当我们提交运行一个DATA步程序后,具体发生了什么事情. SAS程序与其他程序一样,在运行时都要经过两个阶段:编译(Compilation).执行(Execution) 程序首先经过编译阶段,该阶段主 ...
随机推荐
- jQuery WeUI 组件下拉刷新和滚动加载的实现
最近在做手机版使用到了下拉刷新和滚动加载,记录一下实现过程: 一.引入文件 ? 1 2 3 4 <link rel="stylesheet" href="Conte ...
- poj——1006 生理周期
生理周期 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 138291 Accepted: 44300 Descripti ...
- Mutual Training for Wannafly Union #6
A =w= B QvQ C 题意:有长度为n的序列(n<=5e5),求满足条件的a,b,c,d的组数,要求满足条件:min([a,b])<=min([c,d]),a<=b<c& ...
- Ubuntu 16.04安装VMware-Workstation-12
1.下载: https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-12.1.1-3770994.x86_64. ...
- Spring MVC 4实现RESTFul WebServices的CRUD实例和使用RestTemplate进行请求(全注解形式配置Web和Filter)
在这篇文章中,我们将使用Spring4 MVC编写一个CRUD RESTful Web服务,写一个REST客户端RestTemplate来使用这些服务.我们也将利用外部客户端测试的服务. 下面将展示核 ...
- MyBatis3-以接口方式编程
以下内容引用自http://www.yihaomen.com/article/java/304.htm,不过内容有修改: 继前一篇文章http://www.cnblogs.com/EasonJim/p ...
- python集合可以进行相减
python集合可以进行相减 student = {'tom','jim','mary','tom','jack','rose'} print(student) print('rose' in stu ...
- Linux Rsync实现文件同步备份(转载)
原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...
- C++学习之继承中的访问控制
我们通常认为一个类有两种不同的用户:普通用户 和 类的实现者.其中,普通用户编写的代码使用类的对象,这部分代码只能访问类的公有(接口)成员:实现者则负责编写类的成员和友元的代码,成员和友元既能访问类的 ...
- Codeforces Round #272 (Div. 2) D.Dreamoon and Sets 找规律
D. Dreamoon and Sets Dreamoon likes to play with sets, integers and . is defined as the largest p ...