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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

本节书摘来自华章出版社《深入解析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

相关文章
|
9天前
|
SQL 关系型数据库 MySQL
深入解析MySQL的EXPLAIN:指标详解与索引优化
MySQL 中的 `EXPLAIN` 语句用于分析和优化 SQL 查询,帮助你了解查询优化器的执行计划。本文详细介绍了 `EXPLAIN` 输出的各项指标,如 `id`、`select_type`、`table`、`type`、`key` 等,并提供了如何利用这些指标优化索引结构和 SQL 语句的具体方法。通过实战案例,展示了如何通过创建合适索引和调整查询语句来提升查询性能。
76 9
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
67 10
|
23天前
|
机器学习/深度学习 人工智能 PyTorch
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
本文探讨了Transformer模型中变长输入序列的优化策略,旨在解决深度学习中常见的计算效率问题。文章首先介绍了批处理变长输入的技术挑战,特别是填充方法导致的资源浪费。随后,提出了多种优化技术,包括动态填充、PyTorch NestedTensors、FlashAttention2和XFormers的memory_efficient_attention。这些技术通过减少冗余计算、优化内存管理和改进计算模式,显著提升了模型的性能。实验结果显示,使用FlashAttention2和无填充策略的组合可以将步骤时间减少至323毫秒,相比未优化版本提升了约2.5倍。
42 3
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
|
20天前
|
前端开发 UED
React 文本区域组件 Textarea:深入解析与优化
本文介绍了 React 中 Textarea 组件的基础用法、常见问题及优化方法,包括状态绑定、初始值设置、样式自定义、性能优化和跨浏览器兼容性处理,并提供了代码案例。
48 8
|
26天前
|
测试技术 开发者 Python
使用Python解析和分析源代码
本文介绍了如何使用Python的`ast`模块解析和分析Python源代码,包括安装准备、解析源代码、分析抽象语法树(AST)等步骤,展示了通过自定义`NodeVisitor`类遍历AST并提取信息的方法,为代码质量提升和自动化工具开发提供基础。
43 8
|
21天前
|
机器学习/深度学习 搜索推荐 API
淘宝/天猫按图搜索(拍立淘)API的深度解析与应用实践
在数字化时代,电商行业迅速发展,个性化、便捷性和高效性成为消费者新需求。淘宝/天猫推出的拍立淘API,利用图像识别技术,提供精准的购物搜索体验。本文深入探讨其原理、优势、应用场景及实现方法,助力电商技术和用户体验提升。
|
26天前
|
缓存 NoSQL Java
千万级电商线上无阻塞双buffer缓冲优化ID生成机制深度解析
【11月更文挑战第30天】在千万级电商系统中,ID生成机制是核心基础设施之一。一个高效、可靠的ID生成系统对于保障系统的稳定性和性能至关重要。本文将深入探讨一种在千万级电商线上广泛应用的ID生成机制——无阻塞双buffer缓冲优化方案。本文从概述、功能点、背景、业务点、底层原理等多个维度进行解析,并通过Java语言实现多个示例,指出各自实践的优缺点。希望给需要的同学提供一些参考。
45 7
|
24天前
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
44 4
|
23天前
|
存储 监控 算法
Java虚拟机(JVM)垃圾回收机制深度解析与优化策略####
本文旨在深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法及参数调优方法。通过剖析垃圾回收的生命周期、内存区域划分以及GC日志分析,为开发者提供一套实用的JVM垃圾回收优化指南,助力提升Java应用的性能与稳定性。 ####
|
27天前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
30 2

热门文章

最新文章

推荐镜像

更多