gpt4 book ai didi

SAS Proc 表示 : How to capture non default statistics in output dataset such as nmiss p1 p99 etc?

转载 作者:行者123 更新时间:2023-12-04 14:32:52 25 4
gpt4 key购买 nike

原问题:

默认情况下,Proc Means 在 中输出 N、MIN、MEAN、MAX 和 STD输出数据集 .我如何将 NMISS、P1、P5 等添加到此列表中?

附加信息1:

我想要数据集中所有数字变量的统计信息。所以我使用 _numeric_在 var 规范中。

我不希望每个统计数据都在一行中,并且不是列的变量。

 Obs _TYPE_ _FREQ_ _STAT_    var1   var2 var3 etc    
1 0 84829 N 84826.00
2 0 84829 MIN 0.00
3 0 84829 MAX 5000.00
4 0 84829 MEAN 151.22
5 0 84829 STD 1989.47
6 0 84829 NMISS 3
7 0 84829 P1 2.00
8 0 84839 P99 4999.00

我该怎么做呢?

谢谢!

最佳答案

假设您在 proc 方法中使用输出选项(而不是 ODS OUTPUT),您可以像这样控制该数据集中的内容:

proc means data=sashelp.class;
var age;
class sex;
output out=mymeans nmiss= P1= P5= /autoname;
run;

完整的统计名称列表可在 PROC MEANS documentation 中找到。在“统计关键字”下。

您还可以使用 ODS OUTPUT 获得相同的结果(输出格式略有不同)。
ods output summary=mymeans;
ods trace on;
proc means data=sashelp.class nmiss p1 p5;
var age;
class sex;
run;
ods trace off;
ods output close;

ODS TRACE on/off 用于显示创建的表的名称(即“摘要”)。生产中不需要。在这种情况下,您要求统计数据的方式与向输出窗口(在 PROC MEANS 语句中)询问统计数据的方式相同。

根据您的编辑,您希望它转置(每个统计数据一行)。你不能直接得到那个,但移调不是很困难。
proc means data=sashelp.class nmiss p1 p5;
class sex;
var _numeric_;
output out=mymeans n= mean= nmiss= p1= p5= /autoname ;
run;

data mymeans_out;
set mymeans(drop=_type_ _freq_);
by sex;
array numvars _numeric_;
format var stat $32.;
do _t = 1 to dim(numvars);
var=scan(vname(numvars[_t]),1,'_');
stat=scan(vname(numvars[_t]),-1,'_');
value = numvars[_t];
output;
end;
keep sex var stat value;
run;

这有一些限制。如果你的变量名中已经有下划线, var=scan...需要重写行以使用 substr 并找到最后一个下划线,然后 var = substr(vname(...),1,position_of_last_underscore) . Stat 应该没问题,因为它使用 -1(反向)。如果您的变量名称可能超过约 23 个字符,您可能无法再次获取准确的变量名称,因为它可能会被截断或修改。如果是这种情况,那么上面的 ODS OUTPUT 解决方案将对您有所帮助(因为它在附加列中提供了原始变量的名称),但需要做更多的工作才能将该值与截断的名称相关联。

我也滴 _TYPE__FREQ_ , 简化数组定义;如果您需要这些,那么您需要编写一些代码以将它们从单独的输出中排除,并保留它们。

关于SAS Proc 表示 : How to capture non default statistics in output dataset such as nmiss p1 p99 etc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16987019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com