1. 首页
  2. 自学中心
  3. 软件
  4. SAS

SAS数据字典访问

来自 http://www.cnblogs.com/qlp1982/archive/2012/08/20/2647641.html

访问数据字典方法如下:

1.直接用SQL语句访问Dictionary table
2.访问SAShelp View

表名 包含信息 视图名
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

 

打开explorer window,在SASHELP这个library下,以V开头的视图实际上是Dictionary table内容的复制。如
proc sql;describe view sashelp.voption;quit;
可以看到voption这个视图的内容来自dictionary.options。
而对于View,除了SQL,直接用data步或proc步都可以访问。如
data test2;
set sashelp.vcolumn;
where libname=”WORK” and memname=”TEST”;
run;
或者
proc contents data=sashelp.voption;
run;
或者在command栏输入viewtable sashelp.voption。
Dictionary table的最常见的几个应用:
一、取出数据集的变量数和观测数
proc sql;
select nobs,nvar
into:nobs,:nvar
from dictionary.tables
where libname=”WORK” and memname=”TEST”;
quit;
二、取出某一数据集的所有变量名
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_;

原创文章,作者:xsmile,如若转载,请注明出处:http://www.17bigdata.com/sas%e6%95%b0%e6%8d%ae%e5%ad%97%e5%85%b8%e8%ae%bf%e9%97%ae/

联系我们

在线咨询:点击这里给我发消息

邮件:23683716@qq.com

跳至工具栏