版权声明:本文为王小雷原创文章,未经博主允许不得转载 https://blog.csdn.net/dream_an/article/details/50400970
SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础
1. SAS系统简介
代码语言:javascript复制1.1 SAS是先编译后执行的语言,data步标志着编译的开始。
数据指针:当前内存缓存区,输入数据所在位置。
PDV:Program Data Vector,在DATA步中所有涉及的变量被编程当前向量的一部分。
2. SAS编程基础
代码语言:javascript复制2.1 SAS逻辑库
代码语言:javascript复制 SAS逻辑库
| | |
SAS数据集 SAS目录 其他SAS文件
| |
SAS数据文件 SAS数据视图
代码语言:javascript复制2.2 创建逻辑库 libname lb'F:Data_ModelBookdatachapt2';
删除逻辑库 libname lb clear;
SAS数据集命名规则:由英文字母、下划线、数字组成且最多不超过32个字符。
创建永久SAS数据集名为forever
代码语言:javascript复制 libname fv 'F:Data_ModelBook_datachap2';
data fv.forever;
Input x y z;
Cards;
1 2 3
3 4 5
;
run;
代码语言:javascript复制 创建临时数据集名为temp
代码语言:javascript复制 data temp;
Input x y z;
Cards;
1 2 3
4 5 6
;
run;
代码语言:javascript复制2.3 SAS数据集结构
一个SAS数据集是数据值和数据集信息的集合。
数据值:由观测加变量组成,行为观测列为变量;数据集信息:包含该数据集名字、创建时间、在逻辑库中的成员类型等。
2.4 SAS索引
SAS索引存储SAS数据集中一些变量的值和与该值对应的观测进行直接定位的指针系统。
创建索引:
2.4.1 DATA创建索引
代码语言:javascript复制 data idx(index=(x));
input x y z;
cards;
1 2 3
;
run;
代码语言:javascript复制 2.4.2 SQL过程创建索引
代码语言:javascript复制 proc sql;
create index y on idx(y)/*定义单一索引*/;
create index yz in idx(y,z);/*定义符合索引*/
quit;
代码语言:javascript复制 2.4.3 DATASETS 过程创建索引
代码语言:javascript复制 proc datasets lib=work;
modifiy idx;
index create z/nomiss unique;/*定义单一索引*/
index create xyz=(x y z)/nomiss unique;/*定义符合索引*/
quit;
代码语言:javascript复制 2.4.4 删除索引
代码语言:javascript复制 /*删除指定索引;*/
Proc Sql;
Drop Index X On Idx;
Quit;
/*删除全部索引*/
Proc Datasets;
Modify Idx;
Index Delete _ALL_;
Quit;
代码语言:javascript复制2.5 数据字典,包含了所有的当前进程SAS逻辑库、SAS数据表、SAS目录等非常有用的信息。
3. 数据获取与数据集操作
代码语言:javascript复制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
代码语言:javascript复制libname hsdb db2 user=xxx password="xxx" datasrc=datadb;
代码语言:javascript复制 3.2.2访问Oracle
代码语言:javascript复制libname oralib oracle user = xxx pw = xxx path = dbmssrv schema = educ;