SAS中文论坛
标题:
用ODS PACKAGE语句创建ZIP文件
[打印本页]
作者:
shiyiming
时间:
2014-4-4 17:32
标题:
用ODS PACKAGE语句创建ZIP文件
SAS分析员天天在与大数据打交道,所以不可避免会产生大量报表与文件。不少SAS程序员询问可不可以用ZIP文件把输出的多个文件打包?那我们今天就来介绍下如何用SAS ODS PACKAGE语句把文件与报表用ZIP来打包。
首先我们先创建一个文件夹与ZIP文件carstats.zip。
%let projectDir = c:\projects\sgf2013\filenamezip;
/* Clean slate! */
filename newfile "&projectDir./carstats.zip";
data _null_;
if (fexist('newfile')) then
rc = fdelete('newfile');
run;
filename newfile clear;
/* Create folder if it doesn't exist */
options dlcreatedir;
libname out "&projectDir./data";
复制代码
其次,我们把想要输出的文件用ODS语句生成。此例中,我们生成一个pct.csv和一个readme.rtf文件。
/* Create some data */
filename newcsv "&projectDir./data/pct.csv";
proc means noprint data=sashelp.cars;
var msrp;
output out=out.pct median=p50 p95=p95 p99=p99;
run;
ods csv file=newcsv;
proc print data=out.pct;
format _all_; /* clear the formats */
run;
ods csv close;
/* Create an informative document about this package */
filename rm "&projectDir./readme.rtf";
ods rtf(readme)
file="&projectDir./readme.rtf" style=Printer;
ods rtf(readme)
text="These are some instructions for what to do next";
proc datasets lib=out nolist;
contents data=pct;
quit;
ods rtf(readme) close;
复制代码
接下去就是见证奇迹的关键步骤,我们需要用ODS PACKAGE语句把pct.csv和readme.rtf添加到carstats.zip里去。
/* Creating a ZIP file with ODS PACKAGE */
ods package(newzip) open nopf;
ods package(newzip) add file=newcsv path="data/";
ods package(newzip) add file=rm;
ods package(newzip) publish archive
properties(
archive_name="carstats.zip"
archive_path="&projectDir."
);
ods package(newzip) close;
复制代码
最后我们打开carstats.zip文件看看结果,果然pct.csv和readme.rtf都已经在里面了。成功!耶!
如果你自己再加一段发送带ZIP附件的email的SAS程序就可以做到全自动化报表生成打包发送了。
作者:
henryyhl
时间:
2014-4-4 20:54
谢谢楼主的分享,实际工作中挺有用的。谢谢。
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2