SAS之逻辑库、数据集和变量

浏览: 3189

SAS通过DATA步获取外部数据、处理和管理数据,然后通过PROC步对其进行统计分析、预测和优化。在此我们先了解一些关于逻辑库、数据集和变量的一些知识、概念。

一、逻辑库

逻辑库是存放SAS数据集、SAS目录和SAS程序的容器,接下来我们了解一下如何创建SAS逻辑库及关于逻辑库的一些说明。

1、创建逻辑库

通过LIBNAME语句来定义一个新的逻辑库,具体语法如下:

LIBNAME 逻辑库名称 <逻辑库引擎> '逻辑库的物理路径'

逻辑库名称的命名规则

1)最大长度为8个字符

2)必须与字母或下划线开始

3)可以是数字、字母和下划线组成

2、逻辑库引擎

默认情况下使用Base引擎,访问由SAS创建和处理的SAS文件,包括SAS数据集、SAS目录、SAS程序等。这里建立一个默认逻辑库引擎逻辑库名称,具体语法如下:

LIBNAME MyData 'G:\学习\每天坚持写一点点代码\SAS\SAS系统学习\SAS Data';


如果所建立的逻辑库需要访问第三方数据库,则需要指定对应的逻辑库引擎,如MySQL、Teradata引擎。这里需要说明的是,访问第三方数据库需要SAS/ACCESS的许可,例如访问MySQL数据库可写成如下语法:

LIBNAME Data mysql SERVER = LOCALHOST USER = root PASSWORD = snake DATABASE = test port = 3306;


3、永久和临时逻辑库

SAS逻辑库通常为永久逻辑库,其存储在电脑的硬盘中,当SAS的某个会话结束后,该逻辑库是不会被删除的,而且再次打开SAS系统时,永久逻辑库里的数据集可继续用于分析。但需要明确的是,如果你使用永久逻辑库时必须二级名称,即libname.datasetname,点(.)的前半部分为逻辑库名称,指定数据在那个永久逻辑库中,点(.)的后半部分为数据集名称,指定需要处理或分析的数据对象。SAS还默认提供了临时逻辑库,即WORK库,在使用临时逻辑库时就不需要二级名称了。但需要强调的是,临时逻辑库只是在当前SAS会话中保留数据集,一旦SAS关闭后,WORK库中的数据将不复存在。

二、SAS数据集

SAS数据集跟我们平常看到的Excel数据集、关系数据库中的结构数据一样,包含行和列,行为观测,列为变量。与此同时,SAS数据集还包括变量类型、长度、创建、修改数据集的时间等描述信息,具体可以通过PROC CONTENTS过程查看这些描述信息。

SAS数据集也有名称,其命名规则如下:

1)最大长度为32个字符

2)必须与字母或下划线开始

3)可以是数字、字母和下划线组成

下面来创建一个简单的数据集,并通过PROC CONTENTS和PROC PRINT过程查看数据集的信息及数据集的数值:

DATA Mydata.Invenroty;
INPUT Product_ID $ Instock Price;
CARDS;
P001R 12 125.00
P003T 34 40.00
P301M 23 500.00
PC02M 12 100.00
;
RUN;
PROC CONTENTS DATA = Mydata.Invenroty;
RUN;

PROC PRINT DATA = Mydata.Invenroty;
RUN;

image.png

三、变量属性

上面我们说过,SAS数据集的列表示变量,下面我们就来讲讲SAS数据集变量的一些属性,它们包括变量的名称、类型、长度、输入/输出格式和标签。

1、变量名称的命名规则

1)最大长度为32个字符

2)必须与字母或下划线开始

3)可以是数字、字母和下划线组成

2、变量类型

SAS数据集的变量类型很简单,就只有数字型和字符型,不像其他的统计软件有很多的数据类型。数字型变量只能包含数字、点(.)和科学计数法(E);字符型变量可包含任何数值、字符串等。这里需要说明两点,一是SAS的日期型数据是以数字型变量存储;二是数字型变量的缺失值用点(.)表示,字符型变量的缺失值用空格表示。

3、变量长度

变量的长度与变量类型息息相关,字符型变量的长度可以在定义的时候给出,否则其长度为第一次赋值时的长度,最长为32K,即32000个字节;数字型变量的默认长度为8个字节,也可以为其指定不同的长度。

4、输入/输出格式

INFORMAT和FOMAT控制了变量的输入和输出格式,SAS为字符、数字和日期时间数据提供了各种格式,后期我们会专门讲解一下SAS数据格式。如将10000显示为10,000,则需要指定COMMAw.d的格式,w为数据的宽度,d为数据的小数位;将$12345显示为12345,则需要指定w.d的格式;将MAR242016日期数据显示为2016-03-24,就需要YYMMDD10.的格式。

5、变量标签

可以使用LABEL函数改变变量的标签,用于描述变量,其最大长度为256个字符,默认情况下变量的标签就是变量名称。

下面我们就以一个例子来说明SAS的变量属性:

DATA Mydata.sales;
INFILE DATALINES DSD MISSOVER;
INPUT Emp_ID $ Dept $ Sales Date;
INFORMAT Sales DOLLAR10. Date DATE9.;
FORMAT Sales COMMA10. DATE YYMMDD10.;
LABEL Emp_ID = '员工ID' Dept = '部门' Sales = '销售数据' Date = '销售时间';
DATALINES;
ET001,TSG,$10000,01JAN2012
ED002,,$12000,01FEB2012
ET004,TSG,$5000,02MAR2012
EC002,CSG,$23000,01APR2012
ED004,QSG,,01AUG2012
;
RUN;
PROC PRINT DATA = Mydata.sales;
RUN;

image.png

参考资料

深入解析SAS--数据处理、分析优化与商业应用


学习与分享,取长补短,关注小号!

image.png
      长按识别二维码 马上关注

推荐 1
本文由 每天进步一点点2015 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册