数据字典中常用信息检索DICTIONARY.COLUMNS、DICTIONARY.TABLES以及DICTIONARY.MEMBERS等字典表的内容。在编程实践中,如何以SAS字典表来提高效率。
1、DICTIONARY.COLUMNS
对于当前SAS任务的全部数据集,表格DICTIONARY.COLUMNS包含了诸如变量的名称、类型、长度和标签等信息。
表格视图中每一变量的属性都可以使用DESCRIBE语句来识别。
proc sql;
describe table dictionary.columns;
quit;
【例1.1】将数据集SASHELP.CARS的全部变量名存入宏变量VARNAME中,变量名之间用空格分隔。
proc sql;
select name into :varname separated by ' '
from dictionary.columns
where libname=upcase("SASHELP") and memname=upcase("CARS");
%put &varname;
quit;
【例1.2】将数据集SASHELP.CARS的以"m"为首字符的变量名存入宏变量VARNAME中,
proc sql;
select name into :varname separated by ' '
from dictionary.columns
where libname=upcase("SASHELP") and memname=upcase("CARS")
and substr(strip(name),1,2) like "M%";
%put &varname;
quit;/*strip函数用来去除字符串前后空格*/
/*substr(string,1,2)函数表示从字符串位置1开始读取2个字符*/
【例1.3】将数据集SASHELP.CARS中带有FORMAT的变量找出,将这些变量的名称存入宏变量VARNAME,[名称和格式的联合字符]串存入宏变量VARFMT。
/*PS:通过此程序,可以实现批量格式转换。将表1的一部分格式复制到表2中。*/
/*先提取表1中目标变量的格式,存储其变量名和格式,再将此格式宏变量运用在表2中*/
proc sql;
select strip(name),strip(name)||' '||format
into : varname separated by ' ',: varfmt separated by '