深入解析SAS: 基本概念
想摄影不想学摄影
编辑于 2021年05月12日 13:00
收录于文集
共44篇

SAS逻辑库

  1. SAS逻辑库是一个或多个SAS文件的集合,用于组织、查找和管理SAS文件。

  2. SAS逻辑库 管理的SAS文件 包括: SAS数据集、SAS目录、 已编译的SAS程序, 以及:多维数据库文件等。

  3. Windows中,SAS逻辑库通常是包含在同一个文件夹或目录下的 一组SAS文件(其他文件也可以存储在改文件夹或目录下),但只有具有SAS文件扩展名的那些文件 会被认为是该SAS逻辑库的一部分。

  4. 还有一种SAS逻辑库, 叫: 元数据边界逻辑库(metadata-bound library),是绑定在由 元数据提供安全访问控制的对应表对象上的物理逻辑库。

逻辑库:操作

  1. 逻辑库关联可以通过LIBNAME语句LIBNAME函数、使用”新建逻辑库“窗口操作环境命令  来定义逻辑库。并将SAS逻辑库与对应的逻辑库引用名关联起来。之后就可以通过 该逻辑库引用名来读取、写入、并更新SAS逻辑库中的SAS文件。语法:LIBNAME 逻辑库引用名 <逻辑库引擎> ‘逻辑库物理位置’;例:libname saslibtest base 'c:\sas\data&#​39;;    //base可省略(1)saslibtest:是逻辑库引用名。在定义SAS逻辑库时需要指定逻辑库引用名,临时逻辑库WORK除外。(2)base : 是逻辑库引擎。SAS逻辑库引擎是SAS软件和SAS逻辑库之间的接口软件组件,每个SAS逻辑库都关联一种逻辑库引擎。逻辑库引擎 识别逻辑库中的文件 并以 SAS可理解的格式将文件内容呈现给SAS。逻辑库引擎分为:原生逻辑库引擎接口逻辑库引擎base引擎 就是原生逻辑库引擎, 访问由SAS创建和处理的SAS文件。接口逻辑库:需要相应的SAS/ACCESS软件许可,安装相应的数据管理系统的客户端软件。例如:lianame tdlib teradata server=tera2650 user=user1 password=password1 database=hps;如果要访问Teradata数据库管理系统中的数据文件,接口逻辑库引擎Teradata。(3)逻辑库物理位置 'c:\sas\data&#​39; 就是逻辑库saslibtest的物理路径。SAS逻辑库可以由多个物理位置。例如:例SAS逻辑库Y2014有4个物理位置。libname Y2014 ('c:\sas\data\quater1&#​39; 'c:\sas\data\quater2&#​39; 'c:\sas\data\quater3&#​39; 'c:\sas\data\quater4&#​39; )

  2. 永久和临时SAS逻辑库使用永久逻辑库中的文件时,通常需要指定逻辑库引用名作为两层SAS文件名的第一部分,并且要告诉SAS该文件的存储位置。临时逻辑库WORK:存储临时数据和文件的临时逻辑库,引用名为WORK。一般通过指定一级名称来读写临时逻辑库WORK中的SAS文件(也可以使用二级名称,如”work.Inventory")。

  3. SAS系统逻辑库WORK,user,sashelp,sasuser(1)user逻辑库:可以通过使用LIBNAME语句、LIBNAME函数,系统选项USER= 、 操作系统  显示指定。指定user逻辑库后,可以使用一级名称读取该逻辑库中的文件。options user=逻辑库名;用特殊的逻辑库名user来指定SAS程序默认的逻辑库。初始默认状态下,默认的逻辑库是work逻辑库。当想改变默认逻辑库的时候,可以使用此方式完成。但是要注意,在使用后最好再使用“options user=work;”语句转换回默认状态,要不然容易出问题。(一旦定义了SAS逻辑库user,在SAS程序中使用一级名称读取或写入任何SAS文件时,SAS都会在该user逻辑库对应的物理位置查找或写入相应的SAS文件。这时,如果要引用WORK逻辑库中的文件,必须指定带有WORK逻辑库引用名的二级名称。) (2)sashelp逻辑库:包含一组用于控制SAS会话各方面信息 的目录(Catalog)和其他文件。如果除了安装Base SAS软件外,还装了SAS的其他产品,那么这些产品需要用到的一些目录也会包含在sashelp逻辑库中。(3)sasuser逻辑库:包含能够定制SAS特征以满足特定要求的SAS目录。用户的个性化设置存储在sasuser逻辑库中。如,可以在名称为sasuser.profile的个人Profile目录中存储个人默认的功能键设置或窗口属性。

SAS数据集

  1. SAS数据集是存储在SAS逻辑库中、由SAS创建和处理的SAS文件,是SAS存储数据的主要方式。

  2. SAS数据集包含: 数据值(以表的观测(行)和变量(列)为形式存在的数据值),以及用来 描述变量类型、长度和创建该数据集时所使用的引擎等信息的描述信息

  3. SAS数据集 (根据其是否包含真正的数据值) 分为: SAS数据文件,SAS视图 SAS数据文件:包含数据和描述信息,在逻辑库中的成员类型是:DATA。SAS视图:不包含数据值,是指向其他数据源的虚数据集,成员类型是VIEW。

图1

图2

图3 数据集 描述信息。

图4

图5:  变量属性:变量名、类型、长度、输出格式、输入格式、标签。

数据集命名:

  1. 每个SAS数据集的完整名称如下:libref.SAS-data-set.membertype共三个部分。从左到右依次是:逻辑库引用名、数据集名称、成员类型

  2. 引用数据集时,通常只指定前两个,SAS会根据上下文环境,来确定成员类型。

  3. 在访问WORK和user逻辑库中的数据集时可以使用一级名称。 CONTENTS过程打印数据集的描述信息,PRINT过程打印数据集的数据值。

代码块
Python
自动换行
复制代码
libname saslib 'd:\sasshare\data';

data saslib.sales;
	infile datalines dsd missover;

	input Emp_ID $ Dept $ Sales Date;
	format Sales COMMA10. Date yymmdd10.;
	informat Date date9.;
	label Emp_ID='员工ID' Dept='部门' Sales='销售数据';
	label Date='销售时间';
	datalines;
	ET001,TSG,10000,01JAN2012
	ET001,,20000,12FEB2012
	ET002,TSG,50000,02MAR2012
	ET002,CSG,66000,03APR2012
	ET003,QSG,,02AUG2012
	;
run;

proc contents data=saslib.sales;
run;

proc print data=saslib.sales noobs label;
run;
复制成功

SAS数据文件

  1. 与SAS视图相比较,SAS数据文件是一种在其文件中包含数据的数据集

  2. SAS数据文件可以由DATA步创建,其名称在DATA语句中指定;还可以由PROC步创建,其名称通常是在该PROC步 语句PROC步 的OUTPUT语句中指定的。

  3. 有两种类型的数据文件:原生SAS数据文件, 接口SAS数据文件原生SAS数据文件:是SAS格式的文件,用来存储SAS格式的数据值描述信息接口数据文件:是指数据以其他格式存在,并且SAS可以通过SAS/ACCESS接口引擎访问的数据文件。 例如:存在于Oracle、DB2、ERP系统中的数据文件。

  4. SAS程序语句创建的是原生SAS数据文件还是接口SAS数据文件,取决于该数据文件所属的逻辑数据库该逻辑库是通过Base引擎定义的,则生成的数据文件是原生数据文件如果是通过SAS/ACCESS接口逻辑库定义的,则所创建的是接口SAS数据文件

  5. 语法:DATA 数据集名称;      ...SAS语句...;RUN;

  6. DATALINES语句表示: 从程序语句中读取数据;SET语句: 读取指定的输入数据集;INFILE语句: 读取指定的外部数据文件。

(1)SAS数据文件观测数

  1. 观测数: 是文件中当前观测(行)和已删除观测的总和。

  2. 可以通过执行CONTENTS过程 或 DATASET过程的CONTENTS语句列出数据集的观测数。所列出的观测数是 观测和已删除观测的总和。

  3. SAS使用所在操作系统内部的长整型数 来记录数据集的观测数。在32位操作系统中,长整型为32位,数据文件的最大观测数是(2^31) - 1 。SAS9.4以后,当创建SAS数据文件时,默认会创建扩展的观测数。

(2)审计追踪SAS文件

  1. 可以通过DATASETS过程对SAS数据文件 创建审计追踪 SAS文件, 用来记录SAS数据我呢见的修改历史。

  2. 每当观测被删除或更新时,谁在什么时候修改了什么的i西南西都会被写入审计文件。

SAS视图

  1. SAS视图本身并不存储数据值,它仅包含描述信息和从其他SAS数据集或从存储为其他软件厂商文件格式的文件中获取数据所需要的信息。

  2. SAS视图的成员类型是: VIEW

  3. 可使用SQL过程、ACCESS过程、DATA语句的VIEW选项来创建SAS视图。

  4. 根据创建的方式,视图又可分为:SQL视图、接口SAS视图、DATA步视图其中,SQL视图和DATA步视图 称为: 原生视图SAS/ACCESS视图被称为: 接口视图

  5. 语法:DATA 数据集名称 / view = 数据集名称;        ...SAS语句...;RUN;

_NULL_数据集

  1. 如果想执行一个DATA步又不像创建SAS数据集,可以指定关键字_NULL_作为数据集名称。

  2. 语法:DATA  _null_;

  3. SAS会执行该DATA步里面的语句,但不会创建新数据集,不会有观测或变量写入任何数据集。

SAS逻辑库和数据集管理

  1. SAS逻辑库和数据集可以通过SAS程序语句进行管理。

  2. 例如:LIBNAME语句、DATA步、DATASETS过程、APPEND过程、CONTENTS过程。

SAS逻辑库和数据集管理

SAS逻辑库和数据集管理

SAS逻辑库和数据集管理

SAS系统选项

  1. SAS有众多选项,根据SAS选项出现的位置、功能和作用,分为:系统选项、数据集选项、语句选项(即在语句中出现的选项。)

  2. SAS系统选项:是影响整个会话过程中SAS程序处理或交互式SAS会话的指令。

  3. SAS系统选项,控制:SAS输出的外观、SAS对所使用文件的处理方式、SAS数据集中观测的处理形式(如OBS选项)、SAS初始化特性(如MEMSIZE选项)、SAS如何与主机操作系统交互。

  4. 系统选项被指定时即开始产生影响,直到其被改变。

  5. 数据集选项: 是为数据集操作 指定的选项,应用于其所作用的SAS数据集。有些数据集选项有对应的系统选项 或 LIBNAME选项,  如OBS=。