SAS编程基础

2020-04-03 11:35

第一章:DATA步阐述

DATA步是SAS的一个关键步,正确理解其执行过程将会学习起来更方便。

1)DATA步是一个循环,数据是一行一行地执行(与SQL过程不同,它是对整个数据集进行操作);

2)DATA步在执行时,将数据放在PDV中,在这里将数据整理成想要的格式

3)有三种情况可将PDV中的数据输出到数据集中,OUTPUT语句,return语句,data步结尾(;或run;)

Output语句:此语句出现在data步中间时,将PDV中数据输出到SAS数据后,继续执行直到data步结尾。 Return语句:将pdv中数据输出到SAS数据集后,返回到data步开头,执行下一次循环。 data步结尾(;或run;):缺省形式,也是必须语句,否则DATA步不完整。相当于一个放在data步结尾处的return语句。

注:当一个DATA步中含有OUTPUT语句时,当执行到语句output时才输出PDV中的数据,data步结尾处的默认输出不起作用。

4)退出SAS数据步:stop语句和abort语句;其作用是退出DATA步,并丢掉PDV中的数据。

data aa; data aa; input ss pay;

input ss pay;

if _error_ then delete; if _error_ then abort; pi=constant('PI');/*常数pi*/ pi=constant('PI');/*常数pi*/ format pi 15.13;

format pi 15.13;

e=CONSTANT('e');/*常数e*/ e=CONSTANT('E');/*常数e*/ datalines; datalines; 111 100 111 100 aaa 200 aaa 200 444 300 444 300 run;

run;

proc print;run; proc print;run;

结果相同(只读取了第一条观测),左边在LOG窗口显示一个提示,右边则显示一个出错信息

注:abort,退出SaS系统(与正常退出相同,有相关提示)。

5)DATA步的短路: IF expression;(子集IF语句):若表达式是假,系统立即返回到DATA步开头,继续执行下一条观测,且不处理当前观测。

If expression then delete; 若表达式成立,则丢掉PDV中数据,直接返回到data步开头

6)INPUT语句读入数据要么在CARDS(DATALINES)到结尾RUN语句之间的数据区中读取(忽

略数据区,从而可看到DATA步的完整结构),要么在infile语句中指定的外部数据文件中读取。

数据指针和程序数据矢量(PDV)

语句 指针数 PDV数 INPUT variables 1 1 SET data1 data2 1 1 MARGE data1 data2 1 1 UPDATE data1 data2 1 1 SET data1; SET data2; 2 1 SET data1; MODIFY data2; 1 2 MODIFY data1 data2; 1 2 控制数据指针的变量 自动变量 说明 备注 _N_=m 指向对应的第m条观测 _N_=0表示数据集文件信息 POINT=n(variable) 指向第n条观测 END=variable Variable中保存的是文件结尾标志(逻辑值) NOBS= variable Variable保存数据集的所有观测数 编译阶段完成 FIRST=m 从第m条观测开始读入 OBS=n 读入的最后一条观测数

DATA步首先它是一个循环(程序),其操作对象是PDV, PDV的结构非常简单,数据结构(定义一行的变量)及一行观测。因而DATA步也是围绕着变量和观测进行。关于变量和观测的操作见第四章和第五章。

改变循环的方法有两种,短路和退出(上面已列出) 毕竟DATA步是加工数据的,因而特殊地有关于将PDV输出到数据集的操作(output,return) 然而DATA步编程中有自己的循环语句,有其短路(countine)和退出(leave)语句。

第2章 SAS编程基础

Sas系统在运行期间需要处理大量的数据及相关文件,SAS会把这些文件组织在一个所谓的库里面,这样方便存取。

SAS逻辑库(用libname建立库,库名不超过8个字符)

SAS数据集(通过二级名法建立数据集,数据集名可达32个字符)

SAS数据文件(包括描述信息,数据表,索引,变量长度亦可达32个字符,sas7bdat

扩展名)

SAS数据视图(不是数据实体,只是一个查询语句,节约空间) SAS目录(用于存储宏程序,用户自定义格式,日志产生的数据文件) 其他SAS文件(存储编译程序产生的文件和访问描述器)

以下程序产生Test数据集(table),View1数据视图(view),Sasmacr宏目录(catalog),Formats格式目录(catalog)

data test; input x y z @@;

cards; 1 2 3 4 5 6 ; run; proc sql;

create view view1 as select *

from sashelp.class ; quit;

proc format; value fmt 1='a' ; run;

%macro test; data test; x=1; run;

%mend test; %test;

2.1 SAS逻辑库

库名的长度不超过8

libname fv ' F:\\Data_Model\\Book_data\\chapt2';

提交后,在SAS中的Explorer中可看到fv库。用右键→Properties就可以看到与之对应的windows目录

libname fv excel ' F:\\Data_Model\\Book_data\\chapt2';

则建立库fv后,还直接存取该目录下的excel工作簿中的工作表单。

libname hsdb db2 user=xxuser password=\ datasrc=datadb;

libname fv clear; 删除库标记

→→

建库及使用

libname fv ' F:\\Data_Model\\Book_data\\chapt2'; data fv.forever; Input x y z; Cards; 1 2 3 4 5 6 ; run; 临时库

data temp;/* 相当于data work.temp;*/ Input x y z; Cards; 1 2 3 4 5 6 ; run;

省略二级名的方法一(用特殊逻辑库名user)

libname user ' F:\\Data_Model\\Book_data\\chapt2'; data forever; Input x y z; Cards; 1 2 3 4 5 6 ; run;

省略二级名的方法二(推荐) options user=fv;

libname fv ' F:\\Data_Model\\Book_data\\chapt2'; data forever; Input x y z; Cards; 1 2 3 4 5 6 ; run;

options user=work; data temp; Input x y z; Cards; 1 2 3 4 5 6 ; run;

读取SAS数据集的信息并保存

proc contents data=sashelp.class out=class_cnt;run; 创建SAS视图(法二)

Data步创建

Data class1/view=class1; Set sashelp.class; Run; SQL过程创建 Proc sql;

Create view class2 as

Select * from sashelp.class; Quit;

2.2 SAS索引

存储变量值与该值对应的定位指针系统(可独立存储,若非必要,可不用),一旦创建索引后面就不能进行排序。

Data步创建索引

data idx(index=(x)); input x y z; cards; 1 2 3 ; run;

SQL过程创建索引 proc sql;

create index y on idx (y)/*定义单一索引,单一索引名必需与变量名相同*/; create index yz on idx (y,z);/*定义复合索引,复合索引名不能与变量名相同*/ quit;

DATASETSf过程创建索引

proc datasets lib=work; modify idx;

index create z/nomiss unique;/* 定义单一索引*/

index create xyz=(x y z)/nomiss unique;/* 定义复合索引*/ quit;

注:nomiss从索引中删除具有缺失值的观测,但不影响原始数据文件里面的缺失值观测。 Unique规定变量的值必需唯一。

/*删除指定索引*/ Proc Sql;

Drop Index X On Idx; Quit;

/*删除全部索引*/ Proc Datasets; Modify Idx;

Index Delete _All_; Quit;

2.3 SAS变量

变量命名规则 变量的属性:


SAS编程基础.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《物理化学》高等教育出版(第五版)第十一章电 极 极 化

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: