[SAS] 內建的DICTIONARY/SASHELP功能
![[SAS] 內建的DICTIONARY/SASHELP功能](/0.jpg)
玩SAS的朋友, 是否曾遇到以下情況:
1. 要把一堆長得看似規律的datasets (ex: RS_Response_Raw, RS_Mass_Raw, RS_Organ_Raw, RS_Node_Raw….. etc.) set 起來, 偏偏只能一個一個打, 手好痠又擔心漏掉…
2. 想要對一堆長得很像的variables (STRESN_1S, STRESN_2S, ….STRESN_15T, etc.) 做處理, 再次一個一個打, 打到天荒地老…
我們可以應用SAS環境中內建的許多"隱藏版"datasets來幫我們適時掌握 ex: 目前設定了哪些libname, 該些libname當中存在哪些datasets, datasets中又有多少資料筆數, 有哪些欄位, 等等, 並把該些資料擷取出來做整理/運算.
這些隱藏在背後的datasets僅能靠SQL語法讀取, 以下簡單介紹如何將WORK資料夾中的某一個dataset, 其特定的一堆variables讀成一個macro variable.
proc sql noprint;
select name into: GetVar separated by ‘ ‘
from dictionary.columns
where libname = “WORK" and Memname = “AAA" and substr(name,1,7) = “STRESN_";
quit;
%put &GetVar; /*將剛創立的macro variable內容呈現在log視窗*/
上述語法, 或許倒著回去看比較容易了解:
透過內建的dictionary.columns(檢視欄位內容)功能, 從 WORK 資料夾中的 AAA dataset, 找出變項名稱前7個字為"STRESN_"的變項, 將它們以’空白’做分隔, 並讀進叫GetVar的巨集變數.
NOTE1: dictionary.columns 可與 sashelp.vcolumn做替換. 更多的內建檢視功能, 請參考SAS網頁.
NOTE2: libname跟資料名稱(Memname)的部分都一定要是大寫.
NOTE3: 忘記什麼是巨集變數了嗎 ^^": 巨集變數介紹I, 巨集變數介紹II
讀成巨集變數後, 就可以輕鬆的使用它們了. 例:
array XXX &GetVar;
do over XXX;
…
分享此文:
按一下即可分享至 X(在新視窗中開啟)
X
按一下以分享至 Facebook(在新視窗中開啟)
分享到 LinkedIn(在新視窗中開啟)
按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)
電子郵件
點這裡列印(在新視窗中開啟)
列印
喜歡 正在載入...
相關