【发布时间】:2014-11-29 02:54:17
【问题描述】:
我有兴趣在 SAS 中计算数据集的偏度。使用proc univariate 语句,我可以获得汇总统计信息,从而获得偏度。是否可以仅将偏度的值作为输出?我还需要该值在下一行中进行一些计算,因此我需要一种方法来访问该值,而不是所有汇总统计信息。
【问题讨论】:
标签: statistics sas
我有兴趣在 SAS 中计算数据集的偏度。使用proc univariate 语句,我可以获得汇总统计信息,从而获得偏度。是否可以仅将偏度的值作为输出?我还需要该值在下一行中进行一些计算,因此我需要一种方法来访问该值,而不是所有汇总统计信息。
【问题讨论】:
标签: statistics sas
您可以通过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 中的偏度值@(如果需要,您可以重命名)。
cValue1 中的值?