部分内容来源于:enter link desc ription here
提取数据集及变量信息
一、关于dictionary.tables与sashelp.vtable及dictionary.columns与sashelp.vcolumn之间的联系
| 表名 | 包含信息 | 视图名 |
|---|---|---|
| DICTIONARY.CATALOGS | SAS目录册及所包含的条目 | SASHELP.VCATALG |
| DICTIONARY.COLUMNS | 列(或变量)及其特征 | SASHELP.VCOLUMN |
| DICTIONARY.DICTIONARIES | 所有表词典 | SASHELP.VDCTNRY |
| DICTIONARY.EXTFILES | 文件标识名和外部文件物理存储地址 | SASHELP.VEXTFL |
| DICTIONARY.INDEXES | SAS数据集索引 | SASHELP.VINDEX |
| DICTIONARY.MEMBERS | SAS数据集 | SASHELP.VMEMBER |
| DICTIONARY.OPTIONS | 目前设定的SAS系统选项 | SASHELP.VOPTION |
| DICTIONARY.STYLES | ODS类型 | SASHELP.VSTYLE |
| DICTIONARY.TABLES | SAS数据文件和视图 | SASHELP.VTABLE |
| DICTIONARY.VIEWS | SAS数据视图 | SASHELP.VVIEW |
- 1、数据字典把当前SAS环境中的所有内容进行汇总归类到这个里面,方便检索;
- 2、注意里面的libname(即library name)和menname(member name)要大写;
- 3、dictionary.tables中的数据集在sas中都有对应的视图,最常用的是:
dictonary.tables————sashelp.vtable:存储的是数据集;
dictionary.columns————sashelp.vcolumn:存储的是变量。
二、使用sql访问数据字典以提取数据集及变量信息
1、取出数据集的变量数和观测数
proc sql;
select nobs,nvar
into:nobs,:nvar
from dictionary.tables
where libname="WORK" and memname="TEST";
quit;
2、取出某一数据集的所有变量名
proc sql;
select name into :varlist
separated by " "
from dictionary.columns
where libname="WORK" and memname="TEST";
quit;
%put &varlist.;
三、取出某个library下所有数据集名
proc sql;
select memname into :dsname
separated by " "
from dictionary.tables
where libname="WORK";
quit;
四、取出所有的宏变量名
proc sql noprint;
create table macv as
select name
from dictionary.macros
where offset=0 and scope="GLOBAL";
quit;
/*效果同 %put _global_*/



雷达卡




京公网安备 11010802022788号







