首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制

SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制

作者头像
王小雷
发布于 2018-01-02 04:14:53
发布于 2018-01-02 04:14:53
1.7K00
代码可运行
举报
文章被收录于专栏:王小雷王小雷
运行总次数:0
代码可运行
SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制
1. 各种循环与控制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DO组     创建一个执行语句块
DO循环        根据下标变量重复执行DOEND之间的语句
DO WHILE    重复执行直到条件为假则退出循环
DO UNTIL    重复执行直到条件为真则退出循环
DO OVER     对隐含下标数组元素执行DO/END之间的语句
END         退出DOSELECT语句的标志
SELECT      选择执行SAS语句
IF-THEN/ELSE有条件执行一个SAS语句
GO TO       使SAS语句跳转到GO TO语句后面,继续执行其他语句
RETURN      不和LINK语句连用时。跳转到DATA步开头;和LINK语句连用时,跳转到LINK后面的语句。
CONTINUE    停止DO循环中当前循环,跳转到DO语句继续执行下一次循环,只能用在DO循环。
LEAVE       跳出当前DO循环或SELECT组,继续执行后面的DATA步。可用在DO循环或SELECT.
2. SELECT - WHEN 顺序执行WHEN,当第一个WHEN为真跳出,或者执行OTHERWISE,否则报错。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
实践:拉直数据集
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    libname chapt6'f:\data_model\book_data\chapt6';
    data fishdata4;
        set chapt6.fishlength(keep=location data_name_measurement);
        by location date;
        array tr[1:4] length1-length4;
        retain length1-length4;
        if first.date then do i=1 to 4;
            tr(i)=0;
        end;
        select(_name_);
            when('length1')length1=measurement;
            when('length2')length2=measurement;
            when('length3')length2=measurement;
            when('length4')length2=measurement;
            otherwise;
        end;
        if last.date;
        keep location date length1-length4;
    run;
3. DO循环
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WHILE|UNTIL
WHILE语句执行之前被计算,条件真。DO WHILE语句是的当条件为真时重复执行DO组中的这些语句。 
UNTIL语句执行之后被计算,条件为真。DO UNTIL语句连续执行DO组中的语句块直到UNTIL条件为真时退出循环。
4. DO OVER语句实践:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
求最大值对应的变量
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    data a;
        input v1 v2 v3 @@;
        datalines;
        1 2 3 1 4 5 2 4
    data b;
        set a;
        _tem=max(of v1-v3);
        array arr v1-v3;
        do over arr;
        if arr=_tem then v4=vname(arr);
        end;
        drop _tem;
    run;
5. 在DATA步的其他地方,RETURN语句使得SAS系统返回到DATA步开头(常用)。
6. SAS常用全程语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
全程语句是可以用在一个SAS程序脚本中的任何地方的语句。可以用在数据步,也可以用在过程步,甚至可以单独使用。

常用的全程语句
COMMENT     作为其他SAS程序的一种解释或者屏蔽功能
X           发布主机操作系统命令,如DOS命令
LIBNAME     定义SAS逻辑库
FILNAME     标记一个外部文件
%INCLUDE    从外部文件等调出SAS语句和数据行
TITLE       输出打印的标题行
FOOTNOTE    输出打印的脚注行
OPTIONS     改变SAS默认的系统选项
7. FILENAME语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
发送程序运行结果到EMAIL
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    filename outbox email
        to='sendname@company.com'
        type='text/html'
        subject='Test Subject';
    ods html body=outbox/*Mail it!*/;
    title 'Here is tile';
    proc print data=sashelp.class;
    run;
    ods html close;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
程序中,filename定义一个email邮件,包括发送对象、发送文件类型和发送主题。然后通过ods html方式输出数据集class到指定对象的邮箱中去。

抓取某个网页的源代码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    filename ws url "http://www.sas.com";
    data sas;
        infile ws length=len lrecl=4000;
        input record $varying4000.len;
    run;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
捕获SAS门户网站源码,并导入到SAS数据集中去,在Web文本挖掘中,常用。
8. 输出控制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SAS系统的输出时执行SAS程序的结果。主要包括如下三点:
    LOG(日志窗口):主要输出程序运行过程中产生的日志。
    OUTPUT(输出窗口结果):主要是SAS过程步运行产生图表结果。
    GRAPH(图形窗口):主要是SAS过程步运行产生的图行结果。
实际上SAS系统与外部其他系统进行数据交换,如运行结果输出到Excel、变成SAS数据集等,都需要SAS另外一个重要的输出控制方法ODS(输出文件系统)来控制。
其中,在输出文件格式中,除了DATA步和PRINTTO过程步主要输出TXT文件外,其余文件格式均由ODS方法产生。
9. ODS输出目标、输出对象如下:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    输出目标(管道)    含义
    LISTING         字符文本在OUTPUT窗口显示、图形在GRAPH1窗口显示
    RESULTS         输出结果在结果窗口显示
    OUTPUTOUTPUT窗口的显示内容(输出对象)转换成SAS数据集
    HTMLOUTPUT窗口的显示内容(输出对象)转换成HTML文件
    CSVALLOUTPUT窗口的显示内容(输出对象)转换成含有逗号的标记语言文件
    RTFOUTPUT窗口的显示内容(输出对象)转换成RTF文件
    PDFOUTPUT窗口的显示内容(输出对象)转换成PDF语言文件
    其他第三方格式 对应的第三方格式文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
输出对象            含义
由SAS过程步创建       一个输出对象的属性主要包含对象名称、对象属性、对象标签和对象路径

ODS实践:
输出过程步中UNIVARIATE所有输出对象--对象名称,对象标签,对象模板,对象路径
    ODS TRACE
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        ods trace on;
        proc univariate data=sashelp.class;
        class sex;
        var age;
        run;
        ods trace off;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ODS EXCLUDE:SECLECT的逆向操作,即在输出目标中排出要输出的对象。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
本文介绍了SAS宏语言、SQL过程、多表操作、数据合并查询、数据集操作、数据存储和SQL多表操作等方面的内容。
王小雷
2018/01/02
2.3K0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
王小雷
2018/01/02
1.9K0
《SAS编程和数据挖掘商业案例》学习笔记# 19
继续《SAS编程与数据挖掘商业案例》学习笔记,本文側重数据处理实践。包含:HASH对象、自己定义format、以及功能强大的正則表達式
全栈程序员站长
2022/07/05
1K0
SAS︱数据索引、数据集常用操作(set、where、merge、append)
数据索引的创建有三种方式:data步骤、sql步骤、datasets步骤。 其中还是有点困惑在data与datasets的区别之上,datasets是对逻辑库中数据集进行操作的方式,而data之后是代表程序的开始。
悟乙己
2019/05/27
7.1K0
SAS-Macro 中的那些语句(三)
不管是在data步中,还是在宏中,都是会有条件判断,在data步中有if ...then ...在宏中也是有该语句的,不过得加上%号,那就是 %if ....%then ...还是先来看一段代码,来看看宏中的%if语句...
Setup
2019/10/21
3.3K0
SAS-Macro 中的那些语句(三)
SAS-100种输出Excel的方法,你在用哪种?
你是被标题吸引来的么?那么小编就要向你道歉了,100种?当然是没有的,但还是有很多中,小编今天的要盘点的一下SAS输出Excel的方法,各种方式之间的优劣。其实好几天前就打算写的,也是在好几天前开始酝酿,一直没有空下来的时间,年底了,各种忙,小编的时间就像是被挤干了的海绵一样,这几天怎么挤都挤不出。废话好像有点多,还是回到今天的主题上~
Setup
2019/10/21
6.1K0
SAS-编程中的小技巧(三)
这又是一篇SAS编程中的小技巧,这次要说的是SAS中数据字典与Macro结合起来的使用技巧,以及数据集删除、保存等技巧....
Setup
2019/10/20
2.6K0
SAS-输出文档生成目录的方法
前段时间有一个需求,利用SAS实现文档目录的自动生成。这里小编没有限定文档的类型,是因为本文将分享两种类型文档(PDF/RTF)通过SAS自动生成目录的方法。
Setup
2020/09/01
3.3K0
SAS-输出文档生成目录的方法
在SAS里玩穿越 | 【SAS Says·扩展篇】IML:5.穿越
【SAS Says·扩展篇】IML 分6集,回复【SASIML】查看全部: 入门 | SAS里的平行世界 函数 | 函数玩一玩 编程 | IML的条件与循环 模块 | 5分钟懂模块 穿越 | 矩阵与数据集的穿越 作业 | 编一个SAS回归软件 ---- 一直以来,大众了解的SAS都是数据集操作,使用的方法是数据步和过程步。但其实,SAS这个庞大的系统中还隐藏了另一个平行世界——IML,在这个世界里,你需要一个像操作MATLAB一样的矩阵思维。 今天我们将介绍如何在SAS里玩穿越,将数据从矩阵变成S
数说君
2018/04/04
1.9K0
在SAS里玩穿越 | 【SAS Says·扩展篇】IML:5.穿越
SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作
版权声明:本文为王小雷原创文章,未经博主允许不得转载 https://blog.csdn.net/dream_an/article/details/50416819
王小雷
2019/05/27
7960
SAS︱操作语句(if、do、select、retain、array)、宏语言、统计量、运算符号
SAS中的一些常见的符号。运算符是一种符号 ①比较算符 ②算术算符 ③逻辑算符 ④其它算符
悟乙己
2019/05/27
8K0
SAS学习︱逻辑库、数据集创建与查看、数据库链接(SAS与R的code对照)
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/52839677
悟乙己
2019/05/27
4.4K0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础
版权声明:本文为王小雷原创文章,未经博主允许不得转载 https://blog.csdn.net/dream_an/article/details/50400970
王小雷
2019/05/27
7390
SAS-走近Log,实现程序的“风险控制”
从第一天学习SAS开始,就摆脱不了看SAS日志,每次运行完程序的第一件事,不是看程序运行的结果,而是点击一下Log页面,第二件事也不是去看结果,而是仔细的浏览Log里面,有没有红色的字体出现(ERROR),有没有绿色的字体出现(WARNING),接着在看有没有黑色的_ERROR_=1出现(出现这种情况,一般是你的数据不满足条件或者语法有问题,下面会有例子),接着还得再看看有没有蓝色的字体(XXX未初始化)出现。就目前小编主要看的也就这四种常见的问题。肯定是不全的,各位大神如有兴趣可以留言补充~
Setup
2019/10/21
3.6K0
【SAS Says】基础篇:ODS的使用(上)
你不可能总是在SAS上查看结果,如果结果很多你要一一的讲结果复制到word中去,有ODS就好啦!它可以把SAS的结果直接输出到word、PDF等文件中。 5.1 ODC的概念 5.2 追踪选择过程的输出 5.3 从过程输出中创建SAS数据集 5.4 使用ODS语句创建HTML输出 5.5 使用ODS语句创建RTF输出 5.6 使用ODS语句创建printer输出 5.7 定制标题和注脚 ---- 5.1 ODC(Output Delivery System)的概念 过程步把数据发送给ODC,以决定输出的样式
数说君
2018/03/28
10.4K0
【SAS Says】基础篇:ODS的使用(上)
【SAS Says】基础篇:4. ODS的使用
你不可能总是在SAS上查看结果,如果结果很多你要一一的讲结果复制到word中去,有ODS就好啦!它可以把SAS的结果直接输出到word、PDF等文件中。 并且,你还要在这些文件中定制字体、背景、颜色... 4.1 ODC的概念 4.2 追踪选择过程的输出 4.3 从过程输出中创建SAS数据集 4.4 使用ODS语句创建HTML输出 4.5 使用ODS语句创建RTF输出 4.6 使用ODS语句创建printer输出 4.7 定制标题和注脚 4.8 用style=option定制proc print输出 4.
数说君
2018/04/08
4.8K0
【SAS Says】基础篇:4. ODS的使用
【SAS Says】基础篇:1. SAS软件入门
本系列【基础篇】已经完全完结了,方便大家阅读学习,我们合并在成一个专辑,目录如下: 1. SAS软件入门 2. 读取数据 3. 描述数据 4. ODS的使用 5. 开发数据(一) 6. 开发数据(二) 7. SAS宏初步 8. 相关、回归等基本统计 ---- 前言·数说君的话 在统计软件里,SAS算是一哥了,虽然R免费开源有各种统计函数、python功能多各方面比较平衡,但是、但是——SAS贵啊!正版的SAS一年要上百万,不是土豪用不起啊! 大家可以在前程无忧上分别搜索一下SAS、R和Python,对比一
数说君
2018/04/08
5.3K0
【SAS Says】基础篇:1. SAS软件入门
【知识】SAS数据分析完整笔记(3)
SAS学习笔记(3):SAS一般高级语言 本篇SAS读书笔记主要介绍SAS一般高级语言,主要内容包括赋值语句、输出语句、分支机构、循环结构、数组以及函数等六个部分。 1 赋值语句 在SAS中用赋值语
机器学习AI算法工程
2018/03/09
2.8K0
【知识】SAS数据分析完整笔记(3)
SAS-如何找出数据集超长变量及观测,并自动进行变量的拆分...
前段时间有人给小编提了一个需求,找出数据集中长度超过200字节的变量,并对变量进行拆分...这个需求当然不难,但是还是分享给大家~主要最近没写啥程序,也就没学到啥新的技能...关于变量长度的拆分,我想也是一个常见的问题。
Setup
2019/10/20
4K0
Oracle PL/SQL语句基础学习笔记(上)
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序。  
全栈程序员站长
2022/11/07
3K0
Oracle PL/SQL语句基础学习笔记(上)
推荐阅读
相关推荐
SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
更多 >
交个朋友
加入[数据] 腾讯云技术交流站
获取数据实战干货 共享技术经验心得
加入数据技术工作实战群
获取实战干货 交流技术经验
加入[数据库] 腾讯云官方技术交流站
数据库问题秒解答 分享实践经验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档