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

简介: SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制1. 各种循环与控制DO组 创建一个执行语句块DO循环 根据下标变量重复执行DO和END之间的语句DO WHILE 重复执行直到条件为假则退出循环DO UNTIL 重复执行直到条件为真则退出循环DO OVER 对隐含下标

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

1. 各种循环与控制
DO组     创建一个执行语句块
DO循环        根据下标变量重复执行DO和END之间的语句
DO WHILE    重复执行直到条件为假则退出循环
DO UNTIL    重复执行直到条件为真则退出循环
DO OVER     对隐含下标数组元素执行DO/END之间的语句
END         退出DO或SELECT语句的标志
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,否则报错。
实践:拉直数据集
    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循环
WHILE|UNTIL
WHILE语句执行之前被计算,条件真。DO WHILE语句是的当条件为真时重复执行DO组中的这些语句。 
UNTIL语句执行之后被计算,条件为真。DO UNTIL语句连续执行DO组中的语句块直到UNTIL条件为真时退出循环。
4. DO OVER语句实践:
求最大值对应的变量
    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常用全程语句
全程语句是可以用在一个SAS程序脚本中的任何地方的语句。可以用在数据步,也可以用在过程步,甚至可以单独使用。

常用的全程语句
COMMENT     作为其他SAS程序的一种解释或者屏蔽功能
X           发布主机操作系统命令,如DOS命令
LIBNAME     定义SAS逻辑库
FILNAME     标记一个外部文件
%INCLUDE    从外部文件等调出SAS语句和数据行
TITLE       输出打印的标题行
FOOTNOTE    输出打印的脚注行
OPTIONS     改变SAS默认的系统选项
7. FILENAME语句
发送程序运行结果到EMAIL
    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;
程序中,filename定义一个email邮件,包括发送对象、发送文件类型和发送主题。然后通过ods html方式输出数据集class到指定对象的邮箱中去。

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

ODS实践:
输出过程步中UNIVARIATE所有输出对象--对象名称,对象标签,对象模板,对象路径
    ODS TRACE
        ods trace on;
        proc univariate data=sashelp.class;
        class sex;
        var age;
        run;
        ods trace off;
ODS EXCLUDE:是SECLECT的逆向操作,即在输出目标中排出要输出的对象。
目录
相关文章
|
2月前
|
搜索推荐 数据挖掘 UED
分享一些利用商品详情数据挖掘潜在需求的成功案例
本文介绍了四个成功利用商品详情数据挖掘潜在需求的案例:亚马逊通过个性化推荐系统提升销售额;小米通过精准挖掘用户需求优化智能硬件生态链;星巴克推出定制化饮品服务满足用户多样化口味;美妆品牌利用数据改进产品配方和设计,制定针对性营销策略。这些案例展示了数据挖掘在提升用户体验和商业价值方面的巨大潜力。
|
6月前
|
数据采集 机器学习/深度学习 数据可视化
数据挖掘实战:Python在金融数据分析中的应用案例
Python在金融数据分析中扮演关键角色,用于预测市场趋势和风险管理。本文通过案例展示了使用Python库(如pandas、numpy、matplotlib等)进行数据获取、清洗、分析和建立预测模型,例如计算苹果公司(AAPL)股票的简单移动平均线,以展示基本流程。此示例为更复杂的金融建模奠定了基础。【6月更文挑战第13天】
1530 3
|
数据可视化 数据挖掘 Python
Python数据挖掘实用案例——自动售货机销售数据分析与应用(二)
Python数据挖掘实用案例——自动售货机销售数据分析与应用(二)
904 0
|
7月前
|
机器学习/深度学习 数据采集 数据挖掘
数据分享|SAS数据挖掘EM贷款违约预测分析:逐步Logistic逻辑回归、决策树、随机森林
数据分享|SAS数据挖掘EM贷款违约预测分析:逐步Logistic逻辑回归、决策树、随机森林
|
7月前
|
机器学习/深度学习 数据挖掘
使用SAS EnterpriseMiner进行数据挖掘:信用评分构建记分卡模型
使用SAS EnterpriseMiner进行数据挖掘:信用评分构建记分卡模型
|
7月前
|
算法 搜索推荐 数据挖掘
通过案例理解数据挖掘
通过案例理解数据挖掘
101 2
|
7月前
|
机器学习/深度学习 数据挖掘 定位技术
预测未来:Python 数据挖掘案例
数据挖掘是从大量数据中提取有用信息的过程。通过应用数据挖掘技术,我们可以发现数据中的模式、关系和趋势,从而做出预测和决策。在 Python 中,有许多强大的数据挖掘库和工具可供使用。本文将介绍一个使用 Python 进行数据挖掘以预测未来的案例。
|
数据采集 数据可视化 数据挖掘
Python数据挖掘实用案例——自动售货机销售数据分析与应用(一)
Python数据挖掘实用案例——自动售货机销售数据分析与应用
604 0
|
机器学习/深度学习 安全 数据挖掘
Python数据挖掘实用案例——自动售货机销售数据分析与应用(三)
Python数据挖掘实用案例——自动售货机销售数据分析与应用(三)
398 0
|
存储 数据挖掘 Python
关于数据挖掘的问题之经典案例
关于数据挖掘的问题之经典案例
175 0

热门文章

最新文章