1。根据行数来选:
data test
set oldset
if _n_=10 then output
if id="001" then output
run
输出第10行的数据行和ID="001"的数据行并形成数据集test;
2。用where语句
3。用firstobs和obs的组合来截取一部分数据行
data test
set oldset(firstobs=10 obs=1000)
run
SAS的数据导入导出大法正所谓巧妇难为无米之炊,数据分析首要的问题是数据的获取。 SAS 作为老牌的统计软件发展至今,已经集成了丰富的数据获取与管理功能组件。本章我们就SAS如何获取数据做重点介绍,并顺带介绍 SAS 如何导出数据文件。
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 读取的方式来说,笔者总结为 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 函数,通过输入输出函数打开数据文件,这是一种比较少见的方式
3.2 数据读取策略
在实际工作中,我们的思维模式通常是碰到一种数据,然后思考采用何种方式读入。因此,笔者将数据类型和读入方式做一个综合,从需求出发找解决方法,即从数据类型出发,总结可用的读入方式,并推荐合适的读入方式。具体见表 3-1 的总结。
完 谢谢观看
在SAS系统中只有SAS数据集才能被SAS过程直接调用,SAS数据集的结构和DBF数据库完全相同,因此无须多讲。而SAS数据集存储在被称为SAS数据库的文件集中,在PC系统中,SAS数据库与某一个文件夹相对应,我们要为每一个数据库指定一个库标记(库名)来识别该库,使用Libname命令可以指定库标记。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)