
【02】資料管理|資料集與資料館的基礎
目錄
資料集 – Dataset
這邊所講的資料集都是指 SAS Dataset,而它又可以分為兩種類型,分別是 SAS File 與 SAS Views:
※補充:SAS Dataset VS External Dataset
SAS Dataset
- SAS 能辨別、格式化紀錄資料的資料集
- 文章內如未特別註明,皆指 SAS Dataset(如 SAS File、SAS Views)
External Dataset
- 不屬於 SAS Dataset 的資料,例如 Csv、Txt 等
SAS File
實體檔案類型的資料集,包含觀察值與變數屬性 (Descriptive information)
分為兩種:
- Native SAS Data file:以 SAS 格式儲存,副檔名為
.sas7bdat
- Interface SAS Data file:其他格式如 DB2、SPSS 等。連結資料館後,SAS 會視為 Native 檔案使用
SAS View
虛擬資料集,用來指向某資料集,不儲存觀察值,只記錄變數與屬性
功能上與 SAS File 類似,但不佔儲存空間。
資料集命名規則
- 以英文字母或底線開頭
- 可含英文字母、底線與數字
- 長度不超過 32 Bytes
- 保留名稱不可使用:
_NULL_
,_DATA_
,_LAST_
資料館 – Library
SAS 中包含一組資料集的容器,可分為永久與暫時資料館。
☀ 永久資料館
- 關閉 SAS 後仍存在,指向實體儲存路徑
- 重開需重新使用
libname
指令關聯資料館
☂ 暫時資料館
- 每次開啟 SAS session 自動生成的
WORK
- 關閉 SAS 後內容即消失
如何建立與連結資料館?
Libname 敘述句
Libname Test "physical-path";
- 將實體資料夾關聯為 SAS Library
- 可調整參數連接 Native 或 Interface SAS Data file
SQL Pass-Through Facility – Connect to
Proc SQL;
connect to Oracle as ORI
(user=Admin pw=test123 path="Test" connection=global);
quit;
- 只能連接 Interface 類型資料
- 第 1, 4 行為
Proc SQL
標準語法 - 第 2~3 行視資料庫類型填參數
資料館命名規則
- 以英文字母或底線開頭
- 可含英文字母、底線、數字
- 長度不超過 8 Bytes
- 保留名稱不可使用:
sashelp
,sasmsg
,sasuser
,work
資料集與資料館命名結構
前面介紹了資料館與資料館,最後就來介紹它們的命名結構吧! SAS資料集是由3個命名層級構成的,分別是Library、Dataset、Member Type,中間以「點(DOT)」間隔
相信大家現在對於Library、Dataset已經有相當的瞭解了,那麼Member Type是什麼呢? 其實它是SAS一種內建用來辨別的標籤,判斷這個資料集屬於哪一種類型。 常見的有:Data、View、CATALOG、INDEX等。 但一般來說我們在程式碼使用Dataset時,不需要特別寫上Member Type這個層級,在特殊場合下才會使用到。 如果是使用資料集的資料時,只需要寫出Library與Dataset這2個層級就好。
One-Level Names
僅由Dataset所組成的命名 其實它骨子是Two-Level Names,Library是WORK暫時資料館
Two-Level Names(WORK)
與上面寫法有相同的結果,兩種都適用
Two-Level Names
由Library與Dataset所組成的命名 當使用大量不同的資料館時,建議都以Two-Level Names命名,能有效辨別程式中不同區塊所使用的資料館