zoukankan      html  css  js  c++  java
  • 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;
    
  • 相关阅读:
    讯时新闻系统再探
    三顾讯时对讯时新闻发布系统的艰难突破
    MsSQL注入猜解数据库技术
    提取中国IP段信息
    翻译杂感 via刘未鹏
    学习密度与专注力
    Cross Compilation Toolchains
    RHEL/CentOS 6.0使用第三方软件库(EPEL与RPMForge、RPMFusion软件库)
    一个很好的shell配置文件
    Cloud Computing
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467868.html
Copyright © 2011-2022 走看看