且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2021-08-07 09:02:38

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

1. SAS系统简介

1.1 SAS是先编译后执行的语言,data步标志着编译的开始。
    数据指针:当前内存缓存区,输入数据所在位置。
    PDV:Program Data Vector,在DATA步中所有涉及的变量被编程当前向量的一部分。

2. SAS编程基础

2.1 SAS逻辑库
                            SAS逻辑库
                    |           |       |
            SAS数据集      SAS目录       其他SAS文件
            |       |
    SAS数据文件  SAS数据视图
2.2 创建逻辑库 libname lb'F:\Data_Model\Bookdata\chapt2';
    删除逻辑库 libname lb clear;
    SAS数据集命名规则:由英文字母、下划线、数字组成且最多不超过32个字符。
    创建永久SAS数据集名为forever
        libname fv 'F:\Data_Model\Book_data\chap2';
        data fv.forever;
        Input x y z;
        Cards;
        1 2 3
        3 4 5
        ;
        run;
    创建临时数据集名为temp
        data temp;
        Input x y z;
        Cards;
        1 2 3
        4 5 6
        ;
        run;
2.3 SAS数据集结构
    一个SAS数据集是数据值和数据集信息的集合。
    数据值:由观测加变量组成,行为观测列为变量;数据集信息:包含该数据集名字、创建时间、在逻辑库中的成员类型等。
2.4 SAS索引
    SAS索引存储SAS数据集中一些变量的值和与该值对应的观测进行直接定位的指针系统。
    创建索引:
    2.4.1 DATA创建索引
            data idx(index=(x));
                input x y z;
                cards;
                1 2 3
                ;
                run;
    2.4.2 SQL过程创建索引
            proc sql;
                create index y on idx(y)/*定义单一索引*/;
                create index yz in idx(y,z);/*定义符合索引*/
            quit;
    2.4.3 DATASETS 过程创建索引
            proc datasets lib=work;
                modifiy idx;
                index create z/nomiss unique;/*定义单一索引*/
                index create xyz=(x y z)/nomiss unique;/*定义符合索引*/
            quit;
    2.4.4 删除索引
            /*删除指定索引;*/
            Proc Sql;
                Drop Index X On Idx;
            Quit;
            /*删除全部索引*/
            Proc Datasets;
                Modify Idx;
                Index Delete _ALL_;
            Quit;
2.5 数据字典,包含了所有的当前进程SAS逻辑库、SAS数据表、SAS目录等非常有用的信息。

3. 数据获取与数据集操作

3.1 数据集操作常用语句
DATA 创建SAS数据集;SET语句 读取数据行,纵向合并SAS数据集;BY语句 控制SET、MERGE、MODIFY、UPDATE语句,并建立变量。
MERGE语句 横向合并两个或两个以上SAS数据集;UPDATE语句 更细SAS数据集;MODIFY语句 修改SAS数据集;
PUT语句 显示或输出数据行;FILE语句 规定当前PUT语句的输出文件;INFILE语句 规定DATA步要读入的外部文件。
3.2 直接访问外部数据库
    3.2.1访问DB2
libname hsdb db2 user=xxx password="xxx" datasrc=datadb;
    3.2.2访问Oracle
libname oralib oracle user = xxx pw = xxx path = dbms-s-rv schema = educ;