SAS:如何仅输出显示数据集中变量的PROC CONTENTS部分?

时间:2013-09-18 03:04:46

标签: sas

我在初学者SAS课程中,我们只需要显示PROC CONTENTS输出中显示数据集中变量的部分。例如,当你做

proc contents data=whas.heart3;
run;

输出是3个表。第3张表格标题为:

  

按字母顺序排列的变量和属性列表

我需要弄清楚如何修改上面的代码才能只显示第3个表。

3 个答案:

答案 0 :(得分:9)

输出通过输出传送系统(ODS)传送。使用ods trace on;,系统会告诉您正在发送的内容。在这种情况下,Variables是您要查找的表。

使用ods select Variables;告诉ODS仅传递变量表。然后重置为默认值(ods select default;)以进行其他操作。

ods select Variables;
proc contents data=mydata;
run;
ods select default;

答案 1 :(得分:5)

我不确定ODS是否会在初学者课程中涵盖。另一个选项是检查SAS程序的在线帮助,在这里您会发现有一个可以与PROC CONTENTS一起使用的SHORT选项。这只会显示变量列表。

proc contents data=whas.heart3 short;
run;

答案 2 :(得分:0)

使用ODS的另一种方法是使用PROC SQL dictionary.columns。它速度较慢但可能更具通用性。

PROC SQL;
  SELECT varnum, name, type, length,format, informat
  FROM dictionary.columns 
  WHERE upcase(libname)="WHAS"
    AND upcase(memname)="HEART3"
  ORDER BY varnum;
QUIT;

这在使用更复杂的ODS设置时可能会有所帮助,相当于

ODS SELECT Variables;
  PROC CONTENTS varnum data=whas.heart3; RUN;
ODS SELECT default;