[SAS] 匯入Excel檔

五月 12, 2010 | | [SAS] 匯入Excel檔 已關閉迴響。

 一般匯入資料到SAS內部環境作業時有許多種方式

除了使用PROC IMPORT,也可使用匯入選單精靈用點選方式匯入

但常會遇到當研究者想同時匯入多個檔案時該怎麼辦?

 SUGI技術文件Ed Heaton, Westat提供其他方法供參考(連結於文章最底端)

這裡使用到Libname概念,首先利用Libname建立書櫃,

並且於後方輸入資料路徑

Libname test ‘D:\test_demo.xls’;  /*櫃子名稱test,長度最多8 bytes*/

其中test_demo.xls內有兩個工作表單,分別為first與second

點選小黑人執行之後,就可以在Explorer視窗中看到一個帶有地球符號的書櫃,如下:

LIBNAME

 根據Log記錄檔,沒有發生error或warning。

點開名稱為test的畫有地球書櫃,發現兩個檔案,即原始test_demo.xls檔中的兩個工作表單

除了點兩下可以開啟資料檔案瀏覽之外。如下圖

可以輸入「test.‘first$n; 」 作呼叫使用「first工作表」檔案的動作,請注意有$字號與n!

其中test為書櫃名稱。

proc print data=test.’first$’n;
run;

若想輸出到表單,可以採用上述指令PROC PRINT即可

LIBNAME_explorer

———————————————————————

另外,常用excel檔案的人可能知道excel內格式常常是綜合的,

同一個欄位中可能有數字也有文字格式

然而SAS環境中除非特別設定,通常都是單一格式!

因此匯入excel資料時需要格外小心

如下的檔案,第二個欄位在excel環境中是有文字也有數字

利用上述方式讀入之後,文字的部分被視為missing

MIXED

解決方法,我們可以在Libname後頭加上mixed=yes指令,告訴SAS我這筆資料是綜合口味

Libname test2 ‘D:\test_demo.xls’ mixed=yes;

因此再重新讀入後,就得到完整的綜合口味資料了!

MIXED=YES 

最後值得一提,大家有印象剛剛提到匯入多筆excel工作表時,書櫃有地球的符號對吧?

讀者可以試試看當你在SAS內使用這些工作表時,你是否可以在其他環境下(如XP、WIN7等)開啟該檔案?

你會發現跳出以下視窗 (以XP為例)

CANNOT_ACCESS

系統表示該檔案被使用中,因此使用者無法在其他地方開啟

除非將SAS關掉或是檔案從SAS環境中移除,否則是無法開啟的喔!

有更多其他高階指令請參考原文

參考來源:http://www2.sas.com/proceedings/sugi31/020-31.pdf


Comments



You must be logged in to post a comment.

Name (required)

Email (required)

個人網站

Speak your mind

total of 2708060 visits