2.4 导入其他格式的数据文件

做数据分析时有很多数据是来自其他软件的,比如Oracle和MySQL导出的数据是以逗号分隔的,其文件后缀为“.csv”,还有.txt、.xls、.sav等格式的数据。在用SAS EG进行数据分析之前,我们必须先将这些外部数据导入SAS系统。通过本节的学习,读者可以将不同格式的数据导入SAS,以便做后续处理。

2.4.1 SAS EG实现方式

下面以导入一个Excel文件为例来讲解导入数据过程中各选项的设置。

1)选择数据类型“Excel工作簿”,单击“浏览”按钮选择文件导入之后存放的逻辑库并设置文件名。本例中的外部导入文件存放在WORK下,命名为CLASS,如图2-18所示。

029-01

图2-18 选择数据类型“Excel工作簿”

2)选择要导入的工作表。若导入的数据中含有多个表单,则需要指定具体的表单;若工作表不是从A1单元格开始读入数据的,则需要选择“使用工作表中特定范围的单元格”,指定数据的存放范围。根据数据的情况,选择数据源是否首行范围内包含字段名称,若不选择,SAS会以默认的F1、F2命名,如图2-19所示。

030-01

图2-19 选择数据源

3)单击“下一步”按钮,看SAS EG对变量的认定是否与源数据一致,若不一致,选中该行变量,单击右下方的“修改”按钮,选中“在输出数据集中包含字段”,并对变量的名称、标签、类型、输入格式和输出格式进行修改,如图2-20所示。

030-02

图2-20 定义字段属性

4)单击“下一步”按钮,得到如图2-21所示界面。若选择“在生成的SAS代码中嵌入数据(E)”选项,则输出中的SAS程序可重复运行或与其他用户共享;“尽可能使用SAS/ACCESS Interface to PC Files导入数据”复选框表示要使用导入数据,若不选该选项,将使用数据步导入数据;若要删除会导致传输错误的字符,请选中“从基于文本的数据文件中删除会导致传输错误的字符”复选框。若导入的文件中包含服务器所不支持的语言的字符,则可能要选择该选项,例如,导入的Microsoft Excel文件中包含日语字符,因为服务器的语言/区域为法语,无法识别某些日语字符,所以要选中该选项。若导入的是文本文件,且要在存储过程中包括用于导入该文本文件的代码,请选择在SAS EG外运行的导入步骤。当运行存储过程时,若服务器可访问原始的文本文件,则不会生成临时的文本文件。你在“导入”任务中指定的分隔符会用在生成的SAS代码中。

031-01

图2-21 高级选项

2.4.2 SAS程序实现方式

以上讲解了手工导入数据的方法,下面使用编程方式实现。

1)读入Excel格式的数据,代码如下:

proc import out=bankdata.class
datafile= "E:\BANKDATA\class.xls"
dbms=excel replace;
getnames=yes;
run;

2)读入TXT格式的数据,代码如下:

proc import out=bankdata.class
datafile= "E:\BANKDATA\class.txt"
dbms=TAB replace;
getnames=yes;
run;

[1]由于SAS对大小写不敏感,后续的数据集名称、程序名称等不再区分大小写,对大小写敏感的地方会特别说明。