设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1533|回复: 0

SAS的数据导入导出大法

[复制链接]

11

主题

106

金钱

171

积分

入门用户

发表于 2019-8-21 16:29:38 | 显示全部楼层 |阅读模式

读取对象与读取方式
说到数据读取这个问题,我们可以从 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 读取的方式来说,笔者总结为 7 类(更准确地讲,应该是 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 函数,通过输入输出函数打开数据文件,这是一种比较少见的方式


数据读取策略
在实际工作中,我们的思维模式通常是碰到一种数据,然后思考采用何种方式读入。因此,笔者将数据类型和读入方式做一个综合,从需求出发找解决方法,即从数据类型出发,总结可用的读入方式,并推荐合适的读入方式,具体见表。
1.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

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

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

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