2.1 通过SAS逻辑库访问数据

2.1.1 商业背景

〈1〉多个SAS数据集存放在计算机的某个文件夹下,你需要同时对这些文件进行处理,如何利用SAS便捷地访问这些SAS文件呢?

〈2〉数据业务存放在公司的数据库中,如DB2数据库。该业务数据库中有存放各类数据的表近100张,需要分析部分表中的数据,并写出分析报告。你现在拥有了访问该DB2数据库的权限,如何才能利用SAS便捷地访问这些数据呢?

2.1.2 SAS相关功能介绍

SAS数据库

SAS数据库分为永久数据库和临时数据库。永久库,顾名思义会永久保存在其中的数据,直到将其删除,例如SAS自带的SASHELP、SASUSER数据库;而临时库的文件会在每次关闭SAS EG软件后被自动删除,例如WORK库。注意,永久库和临时库的差别在于退出SAS时是否保留其中的文件,而不是数据库还是否存在。

在Windows系统中,SAS以路径为基础的方式进行组织,为了使用数据库,需要为每个路径下的数据库或者存放SAS文件的文件夹指定一个逻辑名,例如WORK即为逻辑名,选中WORK库右键查看属性,则可以看到其所存放文件的路径。

SAS逻辑库的命名规则:

〈1〉首字符必须为英文字母(A~Z,包括大写和小写)或下划线(_);

〈2〉由数字、字母和下划线组成;

〈3〉最多不超过8个字符;

〈4〉不区分大小写[1]

在进入SAS系统时,系统会自动指定一些逻辑库供用户使用。

● SASHELP:该数据文件夹中的文件是SAS系统在运作时会使用到的系统文件,对环境的数据设置都会存放在此。用户不要修改该数据文件夹中的文件数据。

● SASUSER:SAS系统会设置SASUSER数据文件夹路径。若用户没有设置其他路径,则SASUSER指定的路径或文件每次都相同,该路径下的数据文件是永久存在的。如果有SAS数据文件要存储时,用户无须在自己的程序代码中设置任何的数据文件夹名称,便可以使用SASUSER数据文件夹来存储SAS数据文件。物理位置:C:\Users\...\Documents\My SAS Files\9.3。

● WORK:进入SAS系统时会设置WORK数据文件夹路径,当用户产生暂时性的SAS数据文件时,会放在该路径下;当离开SAS系统时,SAS系统便会将该路径清除,不会将数据存储下来。

2.1.3 EG菜单解决方案

连接计算机中SAS数据文件夹

Step1在“工具”菜单下选择“分配项目逻辑库”选项,然后在名称栏输入数据库的逻辑名bankdata,注意需要符合逻辑库的命名规则,并选择“local-本机服务器”,如图2-1所示。

图2-1

Step2选择引擎类型为“文件系统”,并在路径选项下,单击后面的“浏览”按钮找到存放SAS文件的文件夹。也可以直接输入地址,比如“E:\bankdata”。直接单击“下一步”按钮即可完成链接到SAS文件夹,如图2-2所示。

图2-2

Step3在左下角的服务器列表中选择“服务器→本地”,单击“刷新”按钮即可查看到刚刚定义的逻辑库。

SAS连接远程数据库

Step1首先建立ODBC数据源。以Windows 7系统为例,在“控制面板→系统和安全→管理工具”路径下选择“数据源(ODBC)”进行配置。打开“用户DSN”选项卡,选择“添加”,选择数据源的数据库类型后,依次单击“下一步”按钮,即按要求填写相关信息即可。

Step2同“连接计算机中SAS数据文件夹”的Step1

Step3引擎类型选择“数据库系统”,并在引擎下选择对应的数据库接口,然后按照要求输入服务器的地址、用户名及密码,如图2-3所示。

图2-3

Step4在左下角的服务器列表中选择“服务器→本地”,单击“刷新”按钮即可查看到刚刚定义的逻辑库。

2.1.4 SAS程序实现

连接计算机中SAS数据文件夹

打开SAS EG软件,在菜单栏下,选择“新建程序”,在打开的界面中输入下面的程序代码,然后单击“运行”按钮即可。

libname为关键词,表示要建立一个逻辑数据库;bankdata为逻辑库名,最长为8位字符;E:\bankdata表示数据存在此路径下,必须用单引号或双引号括起来,最后为英文状态下的分号。

SAS远程连接数据库

在菜单栏下,选择“新建程序”,在打开的界面输入下面的代码,然后单击“运行”按钮即可。下面代码以访问DB2数据库为例。

libname与bankdata的含义同上;DB2表示实现的DB2的访问;user和password分别为访问数据库的用户名和密码,密码需要用引号引起来;datasrc为模式,表示DB2数据库下的某个数据源,一般采用默认状态。

技能提升

〈1〉可以为多个SAS文件夹同时指定一个共同的逻辑库名,这样就可以同时调用不同文件夹中的数据。比如将文件分别放在D:\data\bank与E:\bankdata下,可以直接在程序运行窗口中运行命令:

〈2〉如果工作中需要经常连接某个数据库或者文件夹,可以在“工具→选项→SAS程序”中选中“连接服务器时提交代码”,然后单击“编辑”按钮,将连接的程序复制到里面并保存。当以后每次启动该项目时则会自动连接,就可以像SASHELP逻辑库一样访问它了。

2.1.5 SPSS菜单解决方案

SPSS连接数据库

Step1单击“文件打开→打开数据库→新建查询”命令,弹出“数据库向导”对话框,如图2-4所示,显示了可以使用已安装的数据源,单击“添加ODBC数据源”按钮,弹出“ODBC数据管理器”,单击“添加”按钮,弹出“创建新数据源”对话框,可以添加其他的数据源。

Step2选中“mysqltest”数据框,单击“下一步”按钮。将可用表格中的表拖到“以此顺序检索字段”框中,单击“完成”按钮,即可导入字段,如果不想导入所有字段,可以单击“下一步”按钮,如图2-5所示。

图2-4

图2-5

Step3打开如图2-6所示的对话框,可以通过此对话框选择,对要导入的个案进行过滤筛选,也可以随机抽取一定的比例。如输入test.student.sage>20 and test.student.ssex='男'。可以单击“完成”按钮,如果要对变量进行名称和类型设定则单击“下一步”按钮。

图2-6

Step4如图2-7所示,可以修改变量的名称及类型,原始变量名称分别去掉s,如sage修改为age;同时将变量sid修改为数值型,勾选其后的选项框,单击“下一步”按钮。

图2-7

Step5如图2-8所示,运行语句为:

SELECT sno AS`no`,sname AS name,ssex AS sex,sid AS id,sage AS age FROM test.student WHERE(sage>20 AND ssex='男')。

单击“完成”按钮,即将数据成功导入SPSS数据编辑窗口。

图2-8