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

SAS: How to include Zeros or Missing Values when calculating Median, Minimum and Maximum?

我正在尝试在 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,因为它忽略了零。

如有任何建议或指导,我们将不胜感激?

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

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

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

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

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

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