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';

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

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

0?wx_fmt=png

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;

0?wx_fmt=png
PROC PRINT DATA = Mydata.Invenroty;

RUN;

0?wx_fmt=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;

0?wx_fmt=png

参考资料

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


下期将开始介绍SAS如何读取外部数据。


每天进步一点点2015

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

640?wx_fmt=jpeg
      长按识别二维码 马上关注

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值