设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1748|回复: 0

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

[复制链接]

26

主题

207

金钱

343

积分

入门用户

发表于 2019-6-21 13:53:17 | 显示全部楼层 |阅读模式

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';
1.jpg
如果所建立的逻辑库需要访问第三方数据库,则需要指定对应的逻辑库引擎,如MySQL、Teradata引擎。这里需要说明的是,访问第三方数据库需要SAS/ACCESS的许可,例如访问MySQL数据库可写成如下语法:
LIBNAME Data mysql SERVER = LOCALHOST USER = root PASSWORD = snake DATABASE = test port = 3306;
2.jpg
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过程查看数据集的信息及数据集的数值:
  1. DATA Mydata.Invenroty;
  2.         INPUT Product_ID $ Instock Price;
  3.         CARDS;
  4. P001R 12 125.00
  5. P003T 34 40.00
  6. P301M 23 500.00
  7. PC02M 12 100.00
  8. ;
  9. RUN;
  10. PROC CONTENTS DATA = Mydata.Invenroty;
  11. RUN;
复制代码
  1. PROC PRINT DATA = Mydata.Invenroty;
  2. RUN;
复制代码

4.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的变量属性:
  1. DATA Mydata.sales;
  2.         INFILE DATALINES DSD MISSOVER;
  3.         INPUT Emp_ID $ Dept $ Sales Date;
  4.         INFORMAT Sales DOLLAR10. Date DATE9.;
  5.         FORMAT Sales COMMA10. DATE YYMMDD10.;
  6.         LABEL Emp_ID = '员工ID' Dept = '部门' Sales = '销售数据' Date = '销售时间';
  7.         DATALINES;
  8. ET001,TSG,$10000,01JAN2012
  9. ED002,,$12000,01FEB2012
  10. ET004,TSG,$5000,02MAR2012
  11. EC002,CSG,$23000,01APR2012
  12. ED004,QSG,,01AUG2012
  13. ;
  14. RUN;
  15. PROC PRINT DATA = Mydata.sales;
  16. RUN;
复制代码

3.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表