zoukankan      html  css  js  c++  java
  • SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理

    SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理

    1. SAS变量操作的常用语句

    ASSIGNMENT  创建或修改变量
    SUM         累加变量或表达式
    KEEP        规定在数据集中保留的变量
    DROP        规定在数据集中删除的变量
    ARRAY       定义一个数组
    RENAME      重命名数据集变量
    LENGTH      定义变量长度
    LABEL       定义变量标签
    

    2. 连接符:||

    compress:消除空格
    RETAIN应用:一是需要对某一个变量值进行累加、比较等操作。二是需要保留之前的某一满足条件的变量值到指定的观测对应的变量。
    

    3.维度函数:MID() DIM(MULT)等加于DIM(MULT,1)

    LABEL:标签
    

    4. SAS观测值操作

    OUTPUT 输出当前在PDV中的观测,继续无条件自行下面的语句。
    IF      如果满足条件,继续执行后面语句;否则,返回DATA步开头。
    WHERE   观测进入PDV之前进行条件判断。
    REPLACE 更新观测,但仅在MODIFY语句中适用。
    REMOVE  删除观测,但仅在MODIFY语句中适用。
    DELETE  如果满足条件,返回DATA步开头;否则继续执行后面语句。
    STOP    停止输出当前PDV中的观测,并退出DATA步。
    
    WHERE语句在PDV之前执行。
    

    5. 数据集管理主要包括数据集纵向拼接、转置、排序、比较、复制、重命名、删除等操作。通过SAS的过程步完成,常用过程步。

    APPEND  把来自SAS数据集的所以数据添加到另外一个SAS数据集的后面。
    SORT    对原有SAS数据集安装一个或多个变量进行排序。
    TRANSPOSE   对原有的SAS数据集进行行列转置
    CONTENTS    输出SAS逻辑库成员的描述信息
    DATASETS    管理SAS逻辑库成员,可以完成对SAS逻辑库中的所有成员进行输出列表、复制、换名、添加和删除等操作。
    实践:在PROC SORT中用了NODUPKEY后最好一同使用OUT,OUT可以保证原来的数据集不变,把NODUPKEY后的产生的观测输出到新的数据集中。(万一程序开发有误,有保障) 
    带OUT=选项的删除重复BY值
    
            data a;
                input x y @@;
                cards;
                1 20 1 10 1 30 2 40 2 50
                ;
            run;
            proc sort data=a nodupkey out=b;by x;run;

    6. 行列转置实践

    DATA比PROC效率高
    对比:
    6.1 列转置为行
        PROC步:
    
            proc transpose data=chapt6.fishdata
                out=charpt6.fishlength(rename=(coll=measurement));
                var length1-length4;
                by location date;
            run;
        DATA步:
    
            data chapt6.fishlength2;
                set chapt6.fishdata(keep=location data length1-length4);
                array tr[1:4] length1-length4;
                do i=1 to 4;
                measurement=tr(i);
                output;
                end;
                keep location date measurement;
            run;
    6.2 行转置列
        PROC步:
    
            proc transpose data=chapt6.fishlength
                out=chapt6.fishdata2;
                var measurement;
                by location date;
                id _name_;
            run;
        DATA步:
    
        data chapt6.fishlength(keep=location date measurement);
                do i=1 to 4;
                set chapter6.fishlength(keep=location date measurement);
                array tr[1:4] length1-length4;
                tr(i)=measurement;
                end;
                keep location date length1-length4;
            run;
  • 相关阅读:
    jquery 移除数组重复的元素----$.unique()
    jQuery UI 日期控件--datepicker
    jQuery 如何设置input checkbox 更有效 prop()
    while loading persisted sessions 异常解决方法
    eclipse总是自动跳到ThreadPoolExecutor.java
    oracle的学习 第二节:创建数据表
    oracle是数据库的学习第一节:数据库的安装
    解决IE无法解析json的方法
    浏览器兼容问题----Firefox不兼容event的解决方法
    VSCode变换python的调试解释器
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467898.html
Copyright © 2011-2022 走看看