《深入解析sas:数据处理、分析优化与商业应用》一3.6 将数据集写出到外部文件-阿里云开发者社区

开发者社区> 华章计算机> 正文

《深入解析sas:数据处理、分析优化与商业应用》一3.6 将数据集写出到外部文件

简介:
+关注继续查看

本节书摘来自华章出版社《深入解析sas:数据处理、分析优化与商业应用》一书中的第3章,第3.6节,作者 夏坤庄 徐唯 潘红莲 林建伟,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.6 将数据集写出到外部文件

除了可以在SAS环境中对SAS数据集进行加工处理外,SAS数据集的数据还可以导出到外部文件中,以便在未安装SAS软件的环境中使用,SAS提供了EXPORT过程来实现此功能。EXPORT过程可以将SAS数据集按照指定格式写入外部文本文件。当SAS安装中存在SAS/ACCESS to PC Files许可时,EXPORT过程还可以读取写入PC文件中的外部数据,包括Microsoft Access数据库文件、Miscrosft Excel工作簿、Lotus 1-2-3文件、dBase文件、JMP文件、SPSS文件、Stata文件和Paradox等。
本节介绍如何使用EXPORT过程将SAS数据集导入常用的外部文件,例如带分隔符的文本文件和Microsoft Excel工作簿。同时,SAS还提供了EXPORT向导(选择菜单“文件”“导出数据”)通过图形界面的方式将SAS数据集中的数据导出到上述类型的文件中。导出过程所生成的SAS语句也可以保存起来供以后使用。
EXPORT过程的基本形式如下:

PROC EXPORT
    DATA=数据集
    OUTFILE=文件名 | 文件引用 | OUTTABLE=表名
    DBMS=数据源标识符
    ;
RUN;

其中:
DATA=指定要导出的SAS数据集。其后可添加数据集选项。
OUTFILE=指定要将SAS数据集中的数据写入的文件,可以是物理路径或文件引用;OUTTABLE=指定将SAS数据集的内容导入Microsoft Access数据库时的表名。
DBMS指定所导出的数据类型。SAS支持多种数据类型,例如DLM、CSV、TAB、ACCESS、XLSX、XLS、EXCEL、JMP、DTA、SPASS等。
其中,DLM、CSV、TAB表示导出的数据文件是分别由指定字符(默认为空格)、逗号和制表符分隔的文本文件;ACCESS表示为使用LIBNAME语句的Miscrosoft Access 表;XLSX表示导出的数据文件为Micorsoft Excel 2007或2010的工作簿。可参考SAS帮助文档关于导入数据类型和各类型的详细信息。
在EXPORT过程中还可以指定参数REPLACE,表示当该OUTFILE=指定的文件存在时覆盖该文件,如果不指定REPLACE,则EXPORT过程不会覆盖已经存在的文件。
1.?导出到带分隔符的文件
SAS使用EXPORT过程将数据集中的数据导出到带分隔符的文件(包括DBMS为DLM、CSV和TAB)中时,还可指定表3.14中所示的参数。
image

例3.35:将公司员工信息导出到文件中,文件各列使用逗号(,)分隔。
代码如下:

proc export
    data=saslib.employee
    outfile='C:\SAS\data\employee.dat'
    dbms=dlm
    replace;
    delimiter=',';
    putnames=no;
run;

所导出的文件的部分内容如下:

Emp_ID,Emp_Name,Dept,Title,Entry_Date
ED003,Benjamin Leslie,DSG,Senior Manager,04/26/1993
EC003,Thomos Oliver,CSG,Senior Analyst,08/01/1998
EC011,Adam Scott,CSG,Analyst,11/20/1998
EC012,Jackson Cook,CSG,Manager,06/07/1998
EQ002,Sara Duncan,QSG,Analyst,03/30/1999

2.?导出到CSV文件
例3.36:将数据集saslib.employee中的文件导出到CSV文件。
代码如下:

proc export
    data=saslib.employee
    outfile="C:\SAS\data\employee.csv"
    dbms=csv;
run;

DBMS为CSV会默认使用逗号分隔所生成文件中的各个列。该代码所生成的文件内容与上例相同,这里不再给出。
还可以将上面代码中的DBMS=指定为“TAB”,这时会生成各个列之间由制表符分隔的文件。
3.?使用数据集选项导出部分数据
在PROC EXPORT中还可以使用数据集选项导出部分变量或部分观测。
例3.37:仅将所有员工的姓名、所在部门和入职日期导出到CSV文件。因为数据集saslib. Employee中还包含其他变量,所以使用数据集选项KEEP=指定要导出的变量。代码如下:

proc export
    data=saslib.employee (keep=Name Dept Entry_Date)
    outfile='C:\SAS\data\employee.csv'
    dbms=csv
    replace;
run;

导出的文件部分内容如下:

Emp_ID,Emp_Name,Entry_Date
ED003,Benjamin Leslie,04/26/1993
EC003,Thomos Oliver,08/01/1998
EC011,Adam Scott,11/20/1998
EC012,Jackson Cook,06/07/1998
EQ002,Sara Duncan,03/30/1999

例3.38:将DSG部门的所有员工信息导出到CSV文件中。
代码如下:

proc export
    data=saslib.employee (where=(Dept="DSG"))
    outfile='c:\sas\data\dsg.csv'
    dbms=csv
    replace;
run;

使用数据集选项WHERE=指定导出满足条件的观测。所导出的文件的部分内容如下:

Emp_ID,Emp_Name,Dept,Title,Entry_Date
ED003,Benjamin Leslie,DSG,Senior Manager,04/26/1993
ED013,Alexandra May,DSG,Manager,04/11/2000
ED004,Christian Peters,DSG,Senior Analyst,05/18/2001
ED011,Hunter Joyce,DSG,Analyst,08/13/2001
ED005,Jasmine Rose,DSG,Senior Analyst,11/15/2003

4.?导出到Microsoft Excel文件
例3.39:将数据集saslib.employee中的文件导出到Microsoft Excel文件。
代码如下:

proc export
    data=saslib.employee
    outfile="C:\SAS\data\employee.xlsx "
    dbms=xlsx ;
run;

所生成的Microsoft Excel文件打开如图3.40所示。
image

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Cassandra源码解析系列启动模块
Cassandra源码解析之初始化
1090 0
/文件和目录权限chmod /更改所有者和所属组chown/umask/隐藏权限lsattr/chattr
2.14 文件和目录权限chmod 2.15 更改所有者和所属组chown2.16 umask2.17 隐藏权限lsattr/chattr     文件和目录权限chmod  文件权限: r     4       可读 w    2      可写 x     1    ...
1136 0
Flink批处理优化器之数据属性
在一段时间之前我们已介绍过IP(Interesting Property)对于优化器的意义以及它将对优化器的优化决策产生的影响。本篇我们将介绍Flink的批处理优化器中涉及到的所有的IP,我们将其统称为数据属性。
1058 0
SAS进阶《深入解析SAS》之开发多语言支持的SAS程序
SAS进阶《深入解析SAS》之开发多语言支持的SAS程序 1. 多语言支持的应用程序是指该程序在世界给第使用时,其能够处理的数据,以及处理数据的方式、信息展现的方式都符合当地的语言、文化习惯,这要求应用程序运行时,能够自动进行与地区、语言相关的处理,也就是通常所说的国际化。 2. SBCS、DBCS、MBCS 单字节字符集SBCS指在该字符集中的字符最多由2个字
1680 0
基于英特尔® 优化分析包(OAP)的 Spark 性能优化方案
Spark SQL 作为 Spark 用来处理结构化数据的一个基本模块,已经成为多数企业构建大数据应用的重要选择。但是,在大规模连接(Join)、聚合(Aggregate)等工作负载下,Spark 性能会面临稳定性和性能方面的挑战。
487 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载