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

1. 各种循环与控制
  1. DO 创建一个执行语句块
  2. DO循环 根据下标变量重复执行DOEND之间的语句
  3. DO WHILE 重复执行直到条件为假则退出循环
  4. DO UNTIL 重复执行直到条件为真则退出循环
  5. DO OVER 对隐含下标数组元素执行DO/END之间的语句
  6. END 退出DOSELECT语句的标志
  7. SELECT 选择执行SAS语句
  8. IF-THEN/ELSE有条件执行一个SAS语句
  9. GO TO 使SAS语句跳转到GO TO语句后面,继续执行其他语句
  10. RETURN 不和LINK语句连用时。跳转到DATA步开头;和LINK语句连用时,跳转到LINK后面的语句。
  11. CONTINUE 停止DO循环中当前循环,跳转到DO语句继续执行下一次循环,只能用在DO循环。
  12. LEAVE 跳出当前DO循环或SELECT组,继续执行后面的DATA步。可用在DO循环或SELECT.
2. SELECT - WHEN 顺序执行WHEN,当第一个WHEN为真跳出,或者执行OTHERWISE,否则报错。
  1. 实践:拉直数据集
  1. libname chapt6'f:\data_model\book_data\chapt6';
  2. data fishdata4;
  3. set chapt6.fishlength(keep=location data_name_measurement);
  4. by location date;
  5. array tr[1:4] length1-length4;
  6. retain length1-length4;
  7. if first.date then do i=1 to 4;
  8. tr(i)=0;
  9. end;
  10. select(_name_);
  11. when('length1')length1=measurement;
  12. when('length2')length2=measurement;
  13. when('length3')length2=measurement;
  14. when('length4')length2=measurement;
  15. otherwise;
  16. end;
  17. if last.date;
  18. keep location date length1-length4;
  19. run;
3. DO循环
  1. WHILE|UNTIL
  2. WHILE语句执行之前被计算,条件真。DO WHILE语句是的当条件为真时重复执行DO组中的这些语句。
  3. UNTIL语句执行之后被计算,条件为真。DO UNTIL语句连续执行DO组中的语句块直到UNTIL条件为真时退出循环。
4. DO OVER语句实践:
  1. 求最大值对应的变量
  1. data a;
  2. input v1 v2 v3 @@;
  3. datalines;
  4. 1 2 3 1 4 5 2 4
  5. data b;
  6. set a;
  7. _tem=max(of v1-v3);
  8. array arr v1-v3;
  9. do over arr;
  10. if arr=_tem then v4=vname(arr);
  11. end;
  12. drop _tem;
  13. run;
5. 在DATA步的其他地方,RETURN语句使得SAS系统返回到DATA步开头(常用)。
6. SAS常用全程语句
  1. 全程语句是可以用在一个SAS程序脚本中的任何地方的语句。可以用在数据步,也可以用在过程步,甚至可以单独使用。
  2. 常用的全程语句
  3. COMMENT 作为其他SAS程序的一种解释或者屏蔽功能
  4. X 发布主机操作系统命令,如DOS命令
  5. LIBNAME 定义SAS逻辑库
  6. FILNAME 标记一个外部文件
  7. %INCLUDE 从外部文件等调出SAS语句和数据行
  8. TITLE 输出打印的标题行
  9. FOOTNOTE 输出打印的脚注行
  10. OPTIONS 改变SAS默认的系统选项
7. FILENAME语句
  1. 发送程序运行结果到EMAIL
  1. filename outbox email
  2. to='sendname@company.com'
  3. type='text/html'
  4. subject='Test Subject';
  5. ods html body=outbox/*Mail it!*/;
  6. title 'Here is tile';
  7. proc print data=sashelp.class;
  8. run;
  9. ods html close;
  1. 程序中,filename定义一个email邮件,包括发送对象、发送文件类型和发送主题。然后通过ods html方式输出数据集class到指定对象的邮箱中去。
  2. 抓取某个网页的源代码
  1. filename ws url "http://www.sas.com";
  2. data sas;
  3. infile ws length=len lrecl=4000;
  4. input record $varying4000.len;
  5. run;
  1. 捕获SAS门户网站源码,并导入到SAS数据集中去,在Web文本挖掘中,常用。
8. 输出控制
  1. SAS系统的输出时执行SAS程序的结果。主要包括如下三点:
  2. LOG(日志窗口):主要输出程序运行过程中产生的日志。
  3. OUTPUT(输出窗口结果):主要是SAS过程步运行产生图表结果。
  4. GRAPH(图形窗口):主要是SAS过程步运行产生的图行结果。
  5. 实际上SAS系统与外部其他系统进行数据交换,如运行结果输出到Excel、变成SAS数据集等,都需要SAS另外一个重要的输出控制方法ODS(输出文件系统)来控制。
  6. 其中,在输出文件格式中,除了DATA步和PRINTTO过程步主要输出TXT文件外,其余文件格式均由ODS方法产生。
9. ODS输出目标、输出对象如下:
  1. 输出目标(管道) 含义
  2. LISTING 字符文本在OUTPUT窗口显示、图形在GRAPH1窗口显示
  3. RESULTS 输出结果在结果窗口显示
  4. OUTPUT OUTPUT窗口的显示内容(输出对象)转换成SAS数据集
  5. HTML OUTPUT窗口的显示内容(输出对象)转换成HTML文件
  6. CSVALL OUTPUT窗口的显示内容(输出对象)转换成含有逗号的标记语言文件
  7. RTF OUTPUT窗口的显示内容(输出对象)转换成RTF文件
  8. PDF OUTPUT窗口的显示内容(输出对象)转换成PDF语言文件
  9. 其他第三方格式 对应的第三方格式文件
  1. 输出对象 含义
  2. SAS过程步创建 一个输出对象的属性主要包含对象名称、对象属性、对象标签和对象路径
  3. ODS实践:
  4. 输出过程步中UNIVARIATE所有输出对象--对象名称,对象标签,对象模板,对象路径
  5. ODS TRACE
  1. ods trace on;
  2. proc univariate data=sashelp.class;
  3. class sex;
  4. var age;
  5. run;
  6. ods trace off;
  1. ODS EXCLUDE:是SECLECT的逆向操作,即在输出目标中排出要输出的对象。

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

  1. 《SAS编程和数据挖掘商业案例》第14部分学习笔记

    继续<SAS编程与数据挖掘商业案例>学习笔记系列,本次重点:经常使用全程语句 所谓全程语句.是指能够用在不论什么地方的sas语句,既能够用在data数据步语句里面,也能够用在proc过程步 ...

  2. 《SAS编程和数据挖掘商业案例》学习笔记# 19

    继续<SAS编程与数据挖掘商业案例>学习笔记,本文側重数据处理实践.包含:HASH对象.自己定义format.以及功能强大的正則表達式 一:HASH对象 Hash对象又称散列表,是依据关键 ...

  3. SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) ...

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

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...

  5. SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(2)数据获取与数据集操作 1. SET/SET效率高,建立的主表和建表索引的查询表一般不排序, 2. BY语句,DATA步中,BY语句规定 ...

  6. SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(1)系统简介和编程基础 1. SAS系统简介 1.1 SAS是先编译后执行的语言,data步标志着编译的开始. 数据指针:当前内存缓存区, ...

  7. 《SAS编程与数据挖掘商业案例》学习笔记之十六

    <SAS编程与数据挖掘商业案例>学习笔记,本次重点:sas宏变量 内容包含:宏变量.宏函数.宏參数.通配函数.字符函数.计算函数.引用函数.宏语句.宏应用 1.宏触发器: %name-to ...

  8. 《SAS编程与数据挖掘商业案例》学习笔记之十五

    继续<SAS编程与数据挖掘商业案例>读书笔记,本次重点:输出控制 主要内容包含:log窗体输出控制.output窗体输出控制.ods输出控制 1.log窗体输出控制 将日志输出到外部文件 ...

  9. 《SAS编程与数据挖掘商业案例》学习笔记之十八

    接着曾经的<SAS编程与数据挖掘商业案例>,之前全是sas的基础知识,如今開始进入数据挖掘方面笔记,本文主要介绍数据挖掘基本流程以及应用方向,并以logistic回归为例说明. 一:数据挖 ...

随机推荐

  1. Leetcode 115.不同的子序列

    不同的子序列 给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数. 一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串.(例 ...

  2. [河南省队2012] 找第k小的数

    ★★☆   输入文件:kth.in   输出文件:kth.out   简单对比时间限制:1 s   内存限制:128 MB 题目描述 看到很短的题目会让人心情愉悦,所以给出一个长度为N的序列A1,A2 ...

  3. Memory+SLES 11/12 OS Tuning & Optimization

    https://www.suse.com/documentation/sles11/book_sle_tuning/data/sec_util_memory.html SLES 11/12 OS Tu ...

  4. codevs——1436 孪生素数 2

    1436 孪生素数 2  时间限制: 2 s  空间限制: 1000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 如m=100,n=6 则将输出100 ...

  5. 基于QQ服务器JavaMail邮箱SSL密码第三方发送邮件

    网上javaMail邮箱推送代码太多,大都是有缺陷的,今天做项目刚好要用到,于是发了大半天的时间解决的这个问题. jar包:javax.mail.jar 代码: import java.io.IOEx ...

  6. ojdbc.jar

    Oracle的jdbc驱动是ojdbc.jar 文件,那么mysql的jdbc驱动是什么呢? 匿名 | 浏览 689 次 发布于2015-06-07 02:06   最佳答案   MySQL的JDBC ...

  7. 【CV论文阅读】:Rich feature hierarchies for accurate object detection and semantic segmentation

    R-CNN总结 不总结就没有积累 R-CNN的全称是 Regions with CNN features.它的主要基础是经典的AlexNet,使用AlexNet来提取每个region特征,而不再是传统 ...

  8. 生成sde

    /// <summary> ///获取保存的SDE文件 /// </summary> /// <param name="sdePath">< ...

  9. 为DataGrid 写一个 DropDownListColumn

    Net下有一个类DataGridColumn 作为 DataGrid 控件的不同列类型的基类. 有关此类型全部成员的列表.请參阅 DataGridColumn 成员. System.Object  S ...

  10. Jsp中EL表达式的使用

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka   1.什么是EL         EL是JSP表达式语言,全称是ExpressionLang ...