公告

[公告]
2014/01/17
由於已經是faculty的關係,不太有足夠時間寫部落格。因此更新的速度會相當緩慢。再加上近幾年來SAS GLOBAL FORUM沒有出現讓我覺得驚艷的技術文件,所以能分享的文章相對也減少許多。若有人推薦值得分享的SAS技術文件,請利用『問題討論區』告知。

2013/07/19
臉書留言板的功能因為有不明原因故障,因此特此移除。而intensedebate的留言板因管理不易,也一併移除。目前已經開啟內建的 G+ 留言系統,所以請有需要留言的朋友,可直接至『問題討論區』裡面留言。


2013年7月22日 星期一

Creating ZIP Files with ODS

原文載點:http://support.sas.com/resources/papers/proceedings13/131-2013.pdf 
SAS雖然可以處理龐大的資料,可是有時候過於龐大的資料沒有辦法用電子郵件寄送,直接放在網路硬碟又很佔空間,上傳下載也花時間,所以能夠壓縮成ZIP檔相信是許多人會做的動作。一般人都是額外安裝winzip, winrar或7zip來額外處理壓縮檔案的事情,但其實在SAS內部整理完資料後就可以直接進行壓縮。以下這篇發表於SAS Global Forum 2013的技術文件就教導了如何用SAS ODS程序來製作ZIP壓縮檔案。
首先,用ODS PACKAGE來打開一個包裹處理壓縮過程。
ods package(ProdOutput) open ;
使用者必須先把這個包裹命名。本範例是用ProdOutput來命名,當然也可以取別的名字。不加也可以。原文內還有一個nopf的option在最後,但不加比較好。接著,把準備要壓縮進去的資料和路徑宣告進去:
ods package(ProdOutput) add file='路徑\檔名.sas7bdat';
或者
ods package(ProdOutput) add data=library.檔名;
如果使用者已經把SAS資料生好並存在硬碟的話,建議使用上述第一個程式碼。第二個程式碼目前經過我自己的測試還有一些問題,因為壓縮進去的SAS資料副檔名從.sas7bdat變成.sad。而這個.sad副檔名是無法轉換成.sas7bdat也沒有辦法讀取,所以儘量把完整路徑和檔名寫出來。 接著就是把壓縮檔的檔名和路徑宣告出來:
ods package(ProdOutput) publish archive properties(archive_name='壓縮檔名.zip' archive_path='壓縮路徑');
最後依照ODS慣例,必須把他用close關閉才算大功告成:
ods package(ProdOutput) close;
這個功能不只是可以壓縮資料檔,也可以壓縮SAS程式碼,output報表或者是其他繪圖程序做出來的圖形。可說是相當方便。

CONTACT INFORMATION
Your comments and questions are encouraged.
Contact the author at: Jack Hamilton jfh@acm.org
CODE { display: block; /* fixes a strange ie margin bug */ font-family: Courier New; font-size: 8pt; overflow:auto; background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y; border: 1px solid #ccc; padding: 10px 10px 10px 21px; max-height:200px; height:200px; // for IE6 line-height: 1.2em; }