SAS之逻辑库、数据集和变量
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;
三、变量属性
上面我们说过,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;
参考资料
深入解析SAS--数据处理、分析优化与商业应用
下期将开始介绍SAS如何读取外部数据。
每天进步一点点2015
学习与分享,取长补短,关注小号!
长按识别二维码 马上关注