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;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏lhyt前端之路

js随机数生成器的扩展0.前言1.扩展+分区2.二进制法3. 总结

给你一个能生成随机整数1-7的函数,就叫他生成器get7吧,用它来生成一个1-11的随机整数,不能使用random,而且要等概率。

401
来自专栏xingoo, 一个梦想做发明家的程序员

推荐系统那点事 —— 基于Spark MLlib的特征选择

在机器学习中,一般都会按照下面几个步骤:特征提取、数据预处理、特征选择、模型训练、检验优化。那么特征的选择就很关键了,一般模型最后效果的好坏往往都是跟特征的选...

2119
来自专栏点滴积累

shapeless官方指南翻译写在前面

目录 前言 Shapeless简介 The Type Astronaut's Guide to Shapeless简介 总结 一、前言        在我的20...

3507
来自专栏xcywt

编译到底做了什么(***.c -> ***.o的过程)

 (第一次写博客,好激动的说.......) 我们知道,一个程序由源代码到可执行文件往往由这几步构成: 预处理(Prepressing)-> 编译(Compil...

1905
来自专栏开发与安全

从零开始学C++之STL(七):剩下5种算法代码分析与使用示例(remove 、rotate 、sort、lower_bound、accumulate)

一、移除性算法 (remove) // TEMPLATE FUNCTION remove_copy template < class _InIt,       ...

1780
来自专栏数据结构与算法

网络最大流算法—EK算法

前言 EK算法是求网络最大流的最基础的算法,也是比较好理解的一种算法,利用它可以解决绝大多数最大流问题。 但是受到时间复杂度的限制,这种算法常常有TLE的风险 ...

2768
来自专栏机器之心

令人困惑的TensorFlow!

我叫 Jacob,是 Google AI Resident 项目的研究学者。我是在 2017 年夏天加入该项目的,尽管已经拥有了丰富的编程经验,并且对机器学习的...

1173
来自专栏灯塔大数据

每周学点大数据 | No.27高维外存查找结构——KD 树

No.27期 高维外存查找结构——KD 树 Mr. 王:以往我们在数据结构中进行的查找,都是查找某一个键值或者某一个区间内的值,这样的查找称之为一维查...

3488
来自专栏算法与数据结构

动态规划--Kin

2804
来自专栏灯塔大数据

每周学点大数据 | No.45 基于路径的图算法

No.45期 基于路径的图算法 Mr. 王:接下来我们看一类具体的问题,这类问题叫作基于路径的图算法。这类算法的目标是计算节点间关于路径的信息。在这类问题中,图...

3225

扫码关注云+社区