前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理

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

作者头像
王小雷
发布2018-01-02 12:13:44
1.6K0
发布2018-01-02 12:13:44
举报
文章被收录于专栏:王小雷王小雷

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

1. SAS变量操作的常用语句
代码语言:javascript
复制
ASSIGNMENT  创建或修改变量
SUM         累加变量或表达式
KEEP        规定在数据集中保留的变量
DROP        规定在数据集中删除的变量
ARRAY       定义一个数组
RENAME      重命名数据集变量
LENGTH      定义变量长度
LABEL       定义变量标签
2. 连接符:||
代码语言:javascript
复制
compress:消除空格
RETAIN应用:一是需要对某一个变量值进行累加、比较等操作。二是需要保留之前的某一满足条件的变量值到指定的观测对应的变量。
3.维度函数:MID() DIM(MULT)等加于DIM(MULT,1)
代码语言:javascript
复制
LABEL:标签
4. SAS观测值操作
代码语言:javascript
复制
OUTPUT 输出当前在PDV中的观测,继续无条件自行下面的语句。
IF      如果满足条件,继续执行后面语句;否则,返回DATA步开头。
WHERE   观测进入PDV之前进行条件判断。
REPLACE 更新观测,但仅在MODIFY语句中适用。
REMOVE  删除观测,但仅在MODIFY语句中适用。
DELETE  如果满足条件,返回DATA步开头;否则继续执行后面语句。
STOP    停止输出当前PDV中的观测,并退出DATA步。

WHERE语句在PDV之前执行。
5. 数据集管理主要包括数据集纵向拼接、转置、排序、比较、复制、重命名、删除等操作。通过SAS的过程步完成,常用过程步。
代码语言:javascript
复制
APPEND  把来自SAS数据集的所以数据添加到另外一个SAS数据集的后面。
SORT    对原有SAS数据集安装一个或多个变量进行排序。
TRANSPOSE   对原有的SAS数据集进行行列转置
CONTENTS    输出SAS逻辑库成员的描述信息
DATASETS    管理SAS逻辑库成员,可以完成对SAS逻辑库中的所有成员进行输出列表、复制、换名、添加和删除等操作。
实践:在PROC SORT中用了NODUPKEY后最好一同使用OUT,OUT可以保证原来的数据集不变,把NODUPKEY后的产生的观测输出到新的数据集中。(万一程序开发有误,有保障) 
带OUT=选项的删除重复BY值
代码语言:javascript
复制
        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. 行列转置实践
代码语言:javascript
复制
DATA比PROC效率高
对比:
6.1 列转置为行
    PROC步:
代码语言:javascript
复制
        proc transpose data=chapt6.fishdata
            out=charpt6.fishlength(rename=(coll=measurement));
            var length1-length4;
            by location date;
        run;
代码语言:javascript
复制
    DATA步:
代码语言:javascript
复制
        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;
代码语言:javascript
复制
6.2 行转置列
    PROC步:
代码语言:javascript
复制
        proc transpose data=chapt6.fishlength
            out=chapt6.fishdata2;
            var measurement;
            by location date;
            id _name_;
        run;
代码语言:javascript
复制
    DATA步:
代码语言:javascript
复制
    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;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
    • 1. SAS变量操作的常用语句
      • 2. 连接符:||
        • 3.维度函数:MID() DIM(MULT)等加于DIM(MULT,1)
          • 4. SAS观测值操作
            • 5. 数据集管理主要包括数据集纵向拼接、转置、排序、比较、复制、重命名、删除等操作。通过SAS的过程步完成,常用过程步。
              • 6. 行列转置实践
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档