如何將一個邏輯庫下所有資料集的名稱彙總生成新的資料集BY:crackman
阿新 • • 發佈:2019-02-16
有些時候我們需要知道某個邏輯庫下的所有資料集的名稱,並把這些資料集名稱彙總為一個新的資料集。
第一種方法:用過程
proc contentsdata=SASHELP._all_ out=AllSASHelpData noprint;/*注意_all_的用法*/
run;
proc contents data=MAPS._all_ out=AllMapsData noprint;
run;
data AllDataSets;
set AllSASHelpData AllMapsData;
run;
proc sort data=AllDataSets nodupkey;
/*http://crackman.net/?p=702
by Memname Libname Memtype;
run;
proc print data=AllDataSets;
where Memname like “R%”;/*http://crackman.net/?tag=where-like 對where的Like介紹*/
var Memname Libname Memtype;
title1 “Data Sets Starting with ‘R’ in Specified Libraries”;
run;
看看第二種方法:採用SQL查詢語句
proc
sqlnumber;
title1 “Files Starting with
select Libname, Memname, Memtype
from dictionary.members
where libname in (“SASHELP”,”MAPS”) and Memname like “R%”
order by Memname, Libname;
quit;
下面對dictionary的幾個物件進行介紹。
CATALOGS:SAS目錄的資訊
COLUMNS:SAS變數和列的資訊
EXTFILES:外部資料資訊
INDEXES:參與索引的列的資訊
MACROS:巨集相關資訊
MEMBERS:所有資料型別(表、檢視、目錄等)的資訊
OPTIONS
STYLES:ODS的樣式資訊
TABLES:表和資料集資訊
TITLES:標題和腳註資訊
VIEWS: 檢視資訊
第二個方法比第一個方法簡潔多了,沒有第一個方法那樣需要對資訊進行二次處理,不需要輸出全部的contents內容。