SAS编程演义
上QQ阅读APP看书,第一时间看更新

3.1 读取对象与读取方式

说到数据读取这个问题,我们可以从SAS读取的对象来说, 当然也可以从读取的方式来说。从SAS读取的对象来说,我们可以把外部数据文件归为四类。

(1)数据库管理系统(Data Base Management System, DBMS)数据文件,市面的DBMS非常之多,常见的如DB2、Sybase、MySQL、MS SQL Server、Oracle、Teradata以及Hadoop等。

(2)单机文件(PC file),单机文件应是相对DBMS数据文件而言的,常见的单机数据文件包括MS Access、MS Excel、Lotus、DBF以及大家更熟悉的JMP、SPSS、Stata、Paradox等软件的数据文件。

(3)平面文件(Flat file),这是一种记录间没有结构关系的文件,一个Flat file既可以是纯文本文件(Plain text file),也可以是二进制文件(Binary file),对于我们而言,最常见的是纯文本TXT文件和CSV文件。

(4)流式数据(Instream data),即SAS程序中DATA步里DATALINES语句后的数据行。

从SAS读取的方式来说,笔者总结为七类(更准确地讲,应该是SAS和外部数据交互的方式,因为不仅仅读入,还有导出等其他交互操作)。

(1)LIBNAME语句,LINAME语句其实是动用了我们前面提到的数据库引擎来实现SAS与其他数据库文件的互通,这是SAS获取外部数据库文件最为快速、直接的方式。

(2)SQL直通设施(SQL pass-through facility),这是直接在SAS会话中使用其原生SQL语法的方式。

(3)ACCESS/DBLOAD过程,这是间接访问外部数据库数据文件的方式,不过SAS已不再推荐。

(4)IMPORT/EXPORT过程,前面的三种方式都是包含在SAS/ACCESS模块中的,IMPORT/EXPORT过程则是Base SAS与外部数据集进行沟通的方式,当然我们在利用IMPORT/EXPORT过程时,如果安装且拥有SAS/ACCESS模块的权限,能够支持的数据类型会更丰富。

(5)INFILE+INPUT语句,这是通过DATA步编程的方式读取外部数据或者流式数据。

(6)INPUT+DATALINES语句,这是通过DATA步编程的方式读取流式数据。

(7)IO函数,通过输入输出函数打开数据文件,这是一种比较少见的方式。