公告

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

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


2007年3月18日 星期日

Data Entry Using SAS ®- A Discussion of Various Possibilities

原文載點:http://www2.sas.com/proceedings/sugi27/p224-27.pdf

當進行資料輸入時,最原始的方法就是用 Data step 的程式碼輸入變數名稱、標籤、屬性以及原始資料。但對於不熟悉這些設定和語法的使用者來說會造成很大的困擾。此外,純文字的資料輸入介面容易造成資料欄位錯誤的情況,一旦資料龐大,要找出錯位的地方會變得相當困難。所以很多使用者會利用 EXCEL 來輸入資料,再把資料導入 SAS 裡面。可是 EXCEL 並無法設定變數標籤和屬性,等導入 SAS 後,還是需要再一次用 data step 來重新設定。其實,SAS 裡面已經有一個資料輸入的視窗介面,雖然長的不是很好看,但是可以一次解決上述所說的問題。除此之外,還有其他利用 SAS 其他功能來輸入資料的方法,於是有人就在 SUGI 27 上面發表了一篇使用 SAS 資料輸入介面的教學文章。

裡面用了一個很小的資料來做教學範例資料集,如下所示:

sugi224_27_01


VIEWTABLE


第一個方法也是最簡單的方法。

第一步驟,選擇工具列上的 Tools,再點選裡面的 Table Editor。

sugi224_27_02

這時會看到一個類似 EXCEL 介面的視窗出現。

sugi224_27_03

第二步驟,在 A 欄上點選滑鼠右鍵,接著選擇 Column Attributes。這個動作是拿來設定變數屬性。

sugi224_27_04

然後就會看到一個變數屬性視窗介面。

sugi224_27_05

第三步驟,在出現的變數屬性視窗裡面做下列的設定。

sugi224_27_06

第四步驟,點選 Apply 按鈕進行確認。

sugi224_27_07

第五步驟,在不關閉視窗的情況下,依序點選其他欄位繼續進行變數屬性設定。每設定好一個變數,記得按 Apply。

sugi224_27_08

第六步驟,全部設定好之後,便可以關閉對話視窗。此時在資料輸入介面上面看到的欄位名稱是變數標籤,要顯示變數名稱,可選擇工具列上面的 View,再選擇 Column Names。

sugi224_27_09

第七步驟,開始輸入資料。

sugi224_27_10

第八步驟,點選工作列上的 File,然後點選 Save As 以儲存檔案。存好後就如下圖所示。

sugi224_27_11

如果想要新增資料筆數,SAS 沒有辦法跟 EXCEL 一樣直接把資料填入,而必須先點選工具列上的 Edit,接著點選 Edit mode,再點選 Add Row 後才能繼續輸入。如下圖所示。

sugi224_27_12 sugi224_27_13 sugi224_27_14


DATA CREATION AND DATA ENTRY USING THE ANALYST APPLICATION

這個方法是利用 SAS 內建的分析視窗(類似 SPSS 可以點選的介面)來輸入資料。

第一步驟,點選工具列上的 Solution → Analysis → Analyst。

sugi224_27_15

第二步驟,點選 File → New。此時就會出現一個類似 EXCEL 的視窗,接著就可以直接輸入資料了。

sugi224_27_16

和之前的 Viewtable 比較起來,這個方法最大的缺點就是沒有辦法設定變數屬性。這個缺點影響最大的地方在日期變數,因為他會把日期變數設定成字串變數。如果只是單純的數值變數和字串變數的話影響就會降低。好處是他可以任意的添加欄位,不用像 Viewtable 一樣要先進入 edit mode 才能重新編輯或新增資料。


DATA CREATION AND DATA ENTRY USING SAS/INSIGHT


這種方式是利用 SAS/INSIGHT 的功能來建立資料。

第一步驟,點選工具列上的 Solutions → Analysis → Interactive Data Analysis

sugi224_27_17

第二步驟,點選 New 以建立新的資料集。

sugi224_27_18

此時又會看到熟悉的類似 EXCEL 的介面,但是長的比 Viewtable 更醜了!

sugi224_27_19

第三步驟,點選視窗最左上角的一個箭頭符號,會彈出一個小視窗,裡面有個 New Variable 選項,點下去!

sugi224_27_20

第四步驟,會出現一個更醜的視窗,請輸入你要建立的變數個數。

sugi224_27_21

以本文範例來說,輸入 7,然後按 OK,就會看到七個欄位在上面。

sugi224_27_22

第五步驟,連點 A 欄兩次便可以開始定義變數屬性。

sugi224_27_23

第六步驟,要設定變數格式,在工具列上選擇 Edit → Formats,若要設定日期變數,請再點選 Other。

sugi224_27_24

這個方法和上兩個方法比較起來的唯一缺點是他並無法刪除已經輸入的欄位。可能需要經由 data step 才能做刪除欄位的動作。


USING THE FSEDIT PROCEDURE FOR DATA CREATION AND DATA ENTRY


最後一個方法是利用 PROC FSEDIT 的程序來呼叫出一個互動式視窗並完成資料輸入的動作。

第一步驟,輸入下列程式碼。

proc fsedit new = SAS-data-set;
run;


第二步驟,會出現下面這樣的視窗。可以輸入資料名稱、格式、長度、標籤。

sugi224_27_25

第三步驟,開始輸入資料。

sugi224_27_26

第四步驟,要輸入下一筆資料,得從工具列上選擇 Edit → Add New Record。

sugi224_27_27

PROC FSEDIT 最大的缺點就是無法新增欄位。

無論上述哪一種方法,都可以讓使用者直接在 SAS 裡面建立資料集。如果要我推薦一個最好的方法,我推薦第一個 Viewtable。(因為我也只用過第一種方法。。。)


CONTACT INFORMATION
Ass. Prof. Dipl.Ing. Dr. Barbara Schneider
Institute for Medical Statistics
University of Vienna
Schwarzspanierstr. 17
A - 1090 Vienna
Austria
barbara.schneider@univie.ac.at
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; }