为什么 varnum 停止 sas 中的 proc 内容?

Why is varnum stopping proc contents in sas?

我有以下代码

ods select Variables;  
    proc contents data=xmlout.&XML_DSET;
    run;

ods pdf open语句在代码的前面

ods pdf file="&exceldir\README.pdf" startpage=never;
title 'README FILE';

这需要 xmlout.&XML_DSET 并很好地为我将它放入 pdf 中(ods pdf 关闭;稍后在代码中)。

但是!

如果我像这样将 varnum 排序为变量存在于数据集中

ods select Variables;  
    proc contents data=xmlout.&XML_DSET varnum;
    run;

pdf根本不显示结果!

我做错了什么?

谢谢!

看起来当您添加 VARNUM 选项时,并没有创建 VARIABLES 输出对象,而是创建了一个名为 POSITION 的输出对象。查找过程生成的不同对象的最简单方法是使用 ODS TRACE:

52   ods trace on;
53   proc contents data=sashelp.class;
54   run;


Output Added:
-------------
Name:       Attributes
Label:      Attributes
Template:   Base.Contents.Attributes
Path:       Contents.DataSet.Attributes
-------------

Output Added:
-------------
Name:       EngineHost
Label:      Engine/Host Information
Template:   Base.Contents.EngineHost
Path:       Contents.DataSet.EngineHost
-------------

Output Added:
-------------
Name:       Variables
Label:      Variables
Template:   Base.Contents.Variables
Path:       Contents.DataSet.Variables
-------------

55
56   proc contents data=sashelp.class varnum;
57   run;


Output Added:
-------------
Name:       Attributes
Label:      Attributes
Template:   Base.Contents.Attributes
Path:       Contents.DataSet.Attributes
-------------

Output Added:
-------------
Name:       EngineHost
Label:      Engine/Host Information
Template:   Base.Contents.EngineHost
Path:       Contents.DataSet.EngineHost
-------------

Output Added:
-------------
Name:       Position
Label:      Varnum
Template:   Base.Contents.Position
Path:       Contents.DataSet.Position
-------------

58   ods trace off;

看到这一点,您可以将代码更改为 SELECT 位置输出对象,即:

ods select position;    
proc contents data=sashelp.class varnum;
run;
ods select all;