SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2200|回复: 1
打印 上一主题 下一主题

用ODS PACKAGE语句创建ZIP文件

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
跳转到指定楼层
楼主
发表于 2014-4-4 17:32:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SAS分析员天天在与大数据打交道,所以不可避免会产生大量报表与文件。不少SAS程序员询问可不可以用ZIP文件把输出的多个文件打包?那我们今天就来介绍下如何用SAS ODS PACKAGE语句把文件与报表用ZIP来打包。

首先我们先创建一个文件夹与ZIP文件carstats.zip。
  1. %let projectDir = c:\projects\sgf2013\filenamezip;

  2. /* Clean slate! */
  3. filename newfile "&projectDir./carstats.zip";
  4. data _null_;
  5.   if (fexist('newfile')) then
  6.       rc = fdelete('newfile');
  7. run;
  8. filename newfile clear;

  9. /* Create folder if it doesn't exist */
  10. options dlcreatedir;
  11. libname out "&projectDir./data";
复制代码

其次,我们把想要输出的文件用ODS语句生成。此例中,我们生成一个pct.csv和一个readme.rtf文件。
  1. /* Create some data */
  2. filename newcsv "&projectDir./data/pct.csv";
  3. proc means noprint data=sashelp.cars;
  4. var msrp;
  5. output out=out.pct median=p50 p95=p95 p99=p99;
  6. run;
  7. ods csv file=newcsv;
  8. proc print data=out.pct;
  9. format _all_; /* clear the formats */
  10. run;
  11. ods csv close;

  12. /* Create an informative document about this package */
  13. filename rm "&projectDir./readme.rtf";
  14. ods rtf(readme)
  15.   file="&projectDir./readme.rtf" style=Printer;
  16. ods rtf(readme)
  17.   text="These are some instructions for what to do next";
  18. proc datasets lib=out nolist;
  19. contents data=pct;
  20. quit;
  21. ods rtf(readme) close;
复制代码

接下去就是见证奇迹的关键步骤,我们需要用ODS PACKAGE语句把pct.csv和readme.rtf添加到carstats.zip里去。
  1. /* Creating a ZIP file with ODS PACKAGE */
  2. ods package(newzip) open nopf;
  3. ods package(newzip) add file=newcsv path="data/";
  4. ods package(newzip) add file=rm;
  5. ods package(newzip) publish archive
  6.   properties(
  7.    archive_name="carstats.zip"
  8.    archive_path="&projectDir."
  9.   );
  10. ods package(newzip) close;
复制代码

最后我们打开carstats.zip文件看看结果,果然pct.csv和readme.rtf都已经在里面了。成功!耶!


如果你自己再加一段发送带ZIP附件的email的SAS程序就可以做到全自动化报表生成打包发送了。

分享到:  微信微信
收藏收藏
回复

使用道具 举报

1

主题

12

帖子

103

积分

注册会员

Rank: 2

积分
103
沙发
发表于 2014-4-4 20:54:15 | 只看该作者
谢谢楼主的分享,实际工作中挺有用的。谢谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2024-4-19 16:31 , Processed in 1.627216 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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