SAS:在计算中位数,最小值和最大值时,如何包括零或缺失值?

时间:2018-11-01 23:48:08

标签: sas mean zero proc proc-sql

我正在尝试计算Base SAS中最近5年中几个变量的中位数,最小值和最大值。一些变量在某些年份没有疾病病例,因此为0例。在SAS中计算汇总时,我想包括这些零。

例如:我的变量之一,比如X,在过去5年中分别有8、6、2、0、0个案例。当我使用“ proc-sql”或“ proc-means”计算该变量的摘要时,SAS会忽略那些0,并给我一些与期望值有所不同的信息。我想得到Min = 0,Max = 8和Median = 2,但是SAS忽略了零,却给了我Min = 2,Max = 8和Median = 6。

有什么建议或方向会受到赞赏吗?

2 个答案:

答案 0 :(得分:2)

如果您确实缺少数据,可以使用PROC STDIZE(假设您具有SAS / STAT)将其替换为零。

proc stdize data=have out=want replace; run;

答案 1 :(得分:0)

SAS将包括0,将不包括丢失。您的变量上可能有一种格式,当它实际丢失时,该格式显示为0。 尝试删除格式,然后查看是否是这种情况,否则,这是SAS的默认行为。

您可以使用以下方式删除格式:

format var; *note lack of format, which removes the format;

或者,如果将option missing设置为0,则它​​将显示为0,但是基础值仍然丢失并且将不包括在内。您实际上需要将值更改为0。