【问题标题】:SAS: How to output only the part of PROC CONTENTS that displays the variables in the data set?SAS:如何只输出PROC CONTENTS中显示数据集中变量的部分?
【发布时间】:2018-03-07 06:12:59
【问题描述】:

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

proc contents data=whas.heart3;
run;

输出是 3 个表。第三张表的标题是:

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

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

【问题讨论】:

    标签: sas


    【解决方案1】:

    通过输出交付系统 (ODS) 交付输出。使用ods trace on;,系统会告诉您正在交付什么。在这种情况下,Variables 是您要查找的表。

    使用ods select Variables; 告诉ODS 只提供变量表。然后重置为默认值 (ods select default;) 以执行其他过程。

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

    【讨论】:

      【解决方案2】:

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

      proc contents data=whas.heart3 short;
      run;
      

      【讨论】:

        【解决方案3】:

        使用 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;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-03
          • 2017-08-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多