【问题标题】:Selecting a particular output value in SAS proc univariate在 SAS proc 单变量中选择特定的输出值
【发布时间】:2014-11-29 02:54:17
【问题描述】:

我有兴趣在 SAS 中计算数据集的偏度。使用proc univariate 语句,我可以获得汇总统计信息,从而获得偏度。是否可以仅将偏度的值作为输出?我还需要该值在下一行中进行一些计算,因此我需要一种方法来访问该值,而不是所有汇总统计信息。

【问题讨论】:

    标签: statistics sas


    【解决方案1】:

    您可以通过ods trace 获取可用功能列表。

    ods trace on;
    proc univariate data=sashelp.class;
      var age;
    run;
    ods trace off;
    

    Moments 是包含偏度的表;您可以使用 KEEP 语句和/或 WHERE 语句来过滤到该值。

    ods output moments=class_moments;
    proc univariate data=sashelp.class;
      var age;
    run;
    ods output close;
    

    然后是偏度特有的keep语句:

    ods output moments=class_moments(keep=varname cValue1 label1 where=(label1='Skewness'));
    proc univariate data=sashelp.class;
      var age;
    run;
    ods output close;
    

    【讨论】:

    • 跟进我的问题:我如何参考偏度的值来进行一些涉及它的计算?此外,由于我想在日志中写入偏度值,我运行%put class_moments,但它在日志中只写入文本字符串“class_moments”而不是其中的值。我该怎么做?
    • ods output 的要点是将偏度值放入数据集中 - 如果您在最后运行我的示例代码,您将拥有 class_moments 数据集,其中包含 @987654328 中的偏度值@(如果需要,您可以重命名)。
    • 好的,但是如果我想计算 2*skewness 怎么办?如何使用cValue1 中的值?
    • 我认为,如果您提出要求,您需要阅读 SAS 语言的基本入门。数据集是 SAS 中的基本数据元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多