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

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

1. 一个SAS程序可能包含一个或几个语言成分:
DATA步或PROC步
全程语句
SAS组件语言(SCL)
结构化查询语言(SQL)
SAS宏语言
2. 宏触发:% 是一个宏语句或宏函数;&是一个宏变量引用
3. 局部宏变量:一般程序定义的为宏变量。
全局宏变量:使用%global语句或通过data步接口子程序产生宏变量以及除SYSPBUFF外的所有自动宏变量都是全局宏变量。
4. 定义宏变量 %let 显示宏变量%put
5. 定义宏
    %macro dsn;
        文本;

    %mend dsn;
调用宏
    %test;
嵌套宏
    %macro prt;
        Proc print data=sashelp.class;run;
    %mend prt;
    %macro nest;
        %test;
        %pro;
    %ment nest;
    %nest;
宏存储
    libname test 'f:\data_mode\book_data\chapt10';
    options mstored sasmstore=test;
    %macro test/store;
        data a;
        x=1;
        run;
    %mend test;
6. 宏参数,是一种特殊的宏变量,是定义在宏MACRO语句内的宏变量。
创建宏参数:一安按值创建二按址创建
7. 宏函数,是指能够通过在SAS宏中定义应用DATA步的函数,最常用的通配函数是%SYSFUNC函数。
7.1宏计算函数:%EVAL函数:计算算术和逻辑表达式(整数格式);%SYSEVALF函数:计算算数和逻辑表达式(浮点格式)
%EVAL函数创建宏累加器
    %macro test(finish);
        %let i=1;
        %do %while(&i<finish);
            %put the value of i is &i;
            %let i=%eval(&i+1);
        %end;
    %mend test;
    $test(5)
8. %IF-%THEN/%ELSE语句
%DO组语句
    %DO;
        文本及宏语句;
    %END;
%DO循环语句
    %DO macro-varialble=start %TO stop<%BY increment>;
    文本及宏语言;
    %END;
9. SAS中SQL过程具有以下功能:
产生汇总数据,创建SAS数据集。
从数据字典和数据视图中检索数据。
横向合并数据集。
纵向合并数据集。
创建视图和索引。
更新、添加、删除等操作。
创建宏变量。
10. SQL多表操作
10.1多表关联常用的方式:JOIN内连接,LEFT JOIN左连接,RIGHT JOIN右连接和FULL JOIN全连接。
10.2合并查询:UNION(A并B,但排出重复值),UNION ALL(并),EXCEPT(A-B,但排出重复值),EXCEPT ALL(A-B),INTERSECT(A交B)
10.3MERGE和SLQ比较
    在一对一和多对一是完成相同的,但是在多对多两者完全不同。
    MERGE没有使用IN等价于SQL全连接。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏开发与安全

散列表(二):冲突处理的方法之链地址法的实现(哈希查找)

首先需要澄清的一点是,这里讲的是hash table/hash map ,即数据项所存储的表要用数组来实现。 一、链地址法 这种基本思想:将所有哈希地址为i 的...

1900
来自专栏用户画像

mysql 正则表达式

MySQL用WHERE子句对正则表达式提供了初步的支持,允许你指定用正则表达式过滤SELECT检索出的数据。

682
来自专栏抠抠空间

Django之ORM字段和参数

字段 常用字段 ---- AutoField                                                          ...

2816
来自专栏JackeyGao的博客

Django小技巧13: 使用F()表达式

在 Django QuerySets API 中, F() 用于直接在数据库中引用模型的值。假设你有一个带有price的 Product 模型, 你希望为所有的...

813
来自专栏JetpropelledSnake

Django学习笔记之Django QuerySet的方法

1105
来自专栏技术碎碎念

sql server 使用函数辅助查询

函数是所有语言系统下都具备的内部数据处理过程,SQL SERVER也同样内置了许多函数。在SQL SERVER中,函数是由一个或多个T-SQL语句组成的子程序。...

3314
来自专栏鸿的学习笔记

Python写的Python解释器(四)

真正的Python字节码 现在让进入真正的Python字节码中,从一个简单的函数开始:

723
来自专栏salesforce零基础学习

salesforce 零基础学习(三十九) soql函数以及常量

在salesforce中,我们做SOQL查询时,往往需要用到计算式,比如求和,求平均值,或者过滤数据时,往往需要通过时间日期过滤,SOQL已经封装了很多的函数,...

5480
来自专栏菩提树下的杨过

Flash/Flex学习笔记(34):AS3中的自定义事件

类似C#中自定义事件需要一个自定义的EventArgs子类一样,AS3也需要开发者自定义一个Event类的子类,这里我们假设一种场景:设计一个Person(人物...

1717
来自专栏更流畅、简洁的软件开发方式

我的数据访问函数库的源代码(三)——返回结构数组

/* 2008 4 25 更新 */ 我的数据访问函数库的源码。整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧。 第三部分:返回结构 ...

1886

扫码关注云+社区