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

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

作者头像
王小雷
发布于 2018-01-02 04:13:44
发布于 2018-01-02 04:13:44
1.7K00
代码可运行
举报
文章被收录于专栏:王小雷王小雷
运行总次数:0
代码可运行

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《SAS编程和数据挖掘商业案例》学习笔记# 19
继续《SAS编程与数据挖掘商业案例》学习笔记,本文側重数据处理实践。包含:HASH对象、自己定义format、以及功能强大的正則表達式
全栈程序员站长
2022/07/05
9930
SAS-如何找出数据集超长变量及观测,并自动进行变量的拆分...
前段时间有人给小编提了一个需求,找出数据集中长度超过200字节的变量,并对变量进行拆分...这个需求当然不难,但是还是分享给大家~主要最近没写啥程序,也就没学到啥新的技能...关于变量长度的拆分,我想也是一个常见的问题。
Setup
2019/10/20
3.8K0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制
SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复
王小雷
2018/01/02
1.6K0
SAS︱数据索引、数据集常用操作(set、where、merge、append)
数据索引的创建有三种方式:data步骤、sql步骤、datasets步骤。 其中还是有点困惑在data与datasets的区别之上,datasets是对逻辑库中数据集进行操作的方式,而data之后是代表程序的开始。
悟乙己
2019/05/27
7K0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础
版权声明:本文为王小雷原创文章,未经博主允许不得转载 https://blog.csdn.net/dream_an/article/details/50400970
王小雷
2019/05/27
6650
SAS-编程中的小技巧(三)
这又是一篇SAS编程中的小技巧,这次要说的是SAS中数据字典与Macro结合起来的使用技巧,以及数据集删除、保存等技巧....
Setup
2019/10/20
2.4K0
SAS-编程中的小技巧
今天分享的是SAS软件使用过程的中的几个小技巧,掌握了一些小技巧,编程的效率会提高的更快,还能减少敲代码出错率,好处很多,小编就不一一赘述了。 ----Setup~ 1 快捷键(功能键的使用) 今小编这里说的快捷键,并不是通俗意义上的那种CTRl+A、CTRL+C的这种快捷键,而是SAS编程里面的宏功能键(我称“快捷键”)。改键的使用,可实现设置代码块,以后只敲击代码块的缩写,自动就弹出代码。 01 看效果 1.以输入CSV为例 2.输入回车
企鹅号小编
2018/02/05
1.7K0
SAS-编程中的小技巧
SAS自动打开数据集及复制变量值
上个月的今天,我从南到北,从深圳奔赴帝都参加了一个制药行业软件用户组2016中国区年会(PharmaSUG China 2016)。听了两天的报告,收获不少。有幸见到SAS绘图大神Sanjay Matange,可惜当时忘记了要合影。这个名字可能大家不熟悉,但是他的博客Graphically Speaking我相信很多人有看过。在众多报告中,印象较深的是这个。作者分享了几个很有用的SAS技巧,比如自动打开所标记的数据集、自动获取某个变量的值。可惜没有分享源程序,所以我写了三个小程序,实现了自动打开数据集、执行选中程序并打开生成的数据集以及复制变量值。
专业余码农
2020/07/16
1.1K0
SAS-100种数据转置的方法,你在用哪种?
最近在论坛、群里面经常看到有人问数据转置相关的问题,那么今天小编就在来说一说数据集的转置,之前虽然也写过proc transpose相关的推文,那么今天我还要写...不仅仅要写这个!我还要写小编在数据转置上的成长历程...
Setup
2019/10/21
3.3K0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作
版权声明:本文为王小雷原创文章,未经博主允许不得转载 https://blog.csdn.net/dream_an/article/details/50416819
王小雷
2019/05/27
7180
【学习】七天搞定SAS(五):数据操作与合并
数据集操作永远是逃不掉的问题,最简单的就是两个数据集的合并——当然不是简简单单的行列添加,按照某一主键或者某些主键合并才是最常用的。在SAS中,要熟悉的就是SET这个声明,可以用改变数据集等等。 生成新变量 这里一个比较简单的例子,就是有一个现成的数据集,我们想增加一个变量。 image.png 这样的结果就是增加了一个新的变量 image.png 行合并 这里比较类似于R里面的rbind()函数,就是直接在尾部附上后面的数据。当SET指定了两个或多个数据集的时候,可以进行这样的操作。距离如下:
小莹莹
2018/04/19
2.3K0
【学习】七天搞定SAS(五):数据操作与合并
SAS PDV:程序数据向量的秘密[返璞归真004]
SAS PDV,全称为程序数据向量(Program Data Vector),是SAS在执行DATA步时创建的一个内存区域,用于存储变量的当前值和一些自动生成的变量。了解PDV的作用和原理,对于写出高效、准确的SAS程序非常重要。今天,我们就来深入探讨一下SAS PDV的基本概念和应用。我们将从以下几个方面进行介绍:
归海刀刀
2023/10/09
6230
SAS PDV:程序数据向量的秘密[返璞归真004]
【知识】SAS学习笔记(1--2)
(1)SAS基本概念 1. SAS数据集 SAS数据集(SAS Datasets)可以看作由若干行和若干列组成的表格,类似于一个矩阵,但各列可以取不同的类型值,比如整数值、浮点值、时间值、字符串、货币
机器学习AI算法工程
2018/03/09
2K0
【知识】SAS学习笔记(1--2)
一文搞定SAS软件:①界面操作介绍
大家好,之前我们介绍过SPSS的操作了:一文搞定临床常用统计---再也不用找人做统计分析了(上)、一文搞定临床科研统计(下),今天小编给大家分享另外一个常用统计分析软件—SAS,很多人一听到SAS要编程,就望闻生畏了,小编认为当你熟悉基本的操作界面之后,基本上就是粘贴复制的事情,就能跑出你想要的结果了。现在小编就给大家分享一下SAS的基本知识,下期再给大家介绍具体案例的实际操作。
百味科研芝士
2019/05/23
4.1K0
【SAS Says】基础篇:2. 读取数据
转载请在文章开头注明微信号:shushuojun,谢谢! 本节数据中,我们将介绍SAS读取数据的三种方式: list input、column input、informats 它们各适用于什么情景,如何综合利用这三种方式读取数据?如何读取凌乱的数据? 以及一些小技巧,比如如何让SAS只读取第3到第5行的数据,读取EXCEL时,如何指定读取某个sheet等等 目录: 2.1 将你的数据放入SAS 2.2 用Viewtable窗口输入数据 2.3 用导入向导(Import Wizard)读取文件 2.4 告诉
数说君
2018/04/04
5.7K0
【SAS Says】基础篇:2. 读取数据
SAS- SOC/PT频数表自动输出
前面小编写了SAS-交叉表的自动输出。今天小编打算分享不良事件中常见统计分析表格的几种样式,及自动生成的SAS程序与编程思路。嗯,关于不良事件的分析,常见均是对SOC/PT的例次、例数进行分析。
Setup
2019/10/19
3.3K0
SAS- SOC/PT频数表自动输出
【SAS Says】基础篇:6. 开发数据(二)
如果你管着一份10000条的客户数据,有一天,老板拿着一个500人的表告诉你,这表上的500位客户的信息发生了变动,而且变动的变量很不规律,如客户102是收入发生了变动、客户126是职业发生了变动....,叫你在10000条的那个客户主数据中改一下,你怎么办? 用合并?用IF筛选有没有变动?还是一个一个手动去改?都不需要,用update语句更新一下即可。 本节目录: 6.1 使用SET语句复制数据集 6.2 使用SET语句堆叠数据 6.3 使用SET语句插入数据集 6.4 一对一匹配合并数据 6.5 一对多
数说君
2018/03/28
2.2K0
【SAS Says】基础篇:6. 开发数据(二)
【SAS Says】基础篇:读取数据(上)
特别说明:本节【SAS Says】基础篇:读取数据(上),用的是数说君学习《The little SAS book》时的中文笔记,我们认为这是打基础的最好选择。 上两节 【SAS Says】基础篇:SAS软件入门(上) 【SAS Says】基础篇:SAS软件入门(下) 本节目录:(老手建议复习一下) 读取数据(上) 2.1 将你的数据放入SAS 2.2 用Viewtable窗口输入数据 2.3 用导入向导(Import Wizard)读取文件 2.4 告诉SAS你的原始数据在哪 2.5 List input
数说君
2018/03/28
3.4K0
【SAS Says】基础篇:读取数据(上)
SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
本文介绍了SAS宏语言、SQL过程、多表操作、数据合并查询、数据集操作、数据存储和SQL多表操作等方面的内容。
王小雷
2018/01/02
2.2K0
SAS-时药曲线的绘制(完)
本文是上一篇的推文的续篇,本篇推文将主要介绍GTL绘制受试者维度的时药曲线(画拼图),并分享小编刚出炉的,还热腾腾的自动画图的宏程序。点击
Setup
2019/10/20
3.4K0
推荐阅读
相关推荐
《SAS编程和数据挖掘商业案例》学习笔记# 19
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验