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

SAS:在计算中值、最小值和最大值时,如何包含零或缺失值?,sas,mean,zero,proc,proc-sql,Sas,Mean,Zero,Proc,Proc Sql,我试图计算过去5年在Base SAS中几个变量的中值、最小值和最大值。一些变量在某些年份中没有疾病病例,因此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,因为它忽略了零 如有任何建议或指示,将不

我试图计算过去5年在Base SAS中几个变量的中值、最小值和最大值。一些变量在某些年份中没有疾病病例,因此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;

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

SAS将包括0,但不包括缺失。您可能在变量顶部有一个格式,该格式在变量实际缺失时显示为0。 尝试删除该格式,看看是否是这种情况,否则,这是SAS的默认行为

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

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

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

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


如果您确实有丢失的数据,您可以使用PROC STDIZE(假设您有SAS/STAT)将这些数据替换为零


如果min是0,那么您将拥有零。您的意思是说,您没有该年/月的任何值。你能提供一个样本数据集和样本输出吗?如果最小值为0,那么你将得到零。您的意思是说,您没有该年/月的任何值。你能提供一个样本数据集和样本输出吗?我在数据步骤中添加了:Options missing='0',将缺失的数据替换为0;我想在计算摘要时包含这些0。正如我在问题中提到的,我希望SAS给我的最小值是0,而不是2,因为在计算汇总统计数据时不包括这些零。我在数据步骤中用0替换了缺失的数据,添加了:Options missing='0';我想在计算摘要时包含这些0。正如我在问题中提到的,我希望SAS给我的最小值是0,而不是2,因为在计算汇总统计数据时不包括这些零。我在数据步骤中用0替换了缺失的数据,添加了:Options missing='0';有没有办法让SAS计算中位数(8,6,2,0,0)并给出2而不是6作为结果?它给出6是因为它忽略了那些0。最小值(8,6,2,0,0)=0而不是2。缺少的选项不会替换任何内容,它只是显示为0,类似于格式的工作方式。基础数据仍然丢失,将不包括在内。这解释了为什么SAS没有输出我所期望的数据。你能建议一种用零替换缺失值的方法吗?我有几个缺少值的列/变量,我想用0替换它们以计算摘要统计信息。在这种情况下,一个简单的if语句行得通吗?@TivosJar您没有尝试下面Craig的解决方案吗?它可以将所有数值替换为0。如果需要特定的变量,可以列出它们。否则,如果它更复杂,是的,一个if语句将很好地工作。我确实尝试了Craig建议的解决方案。但是,我收到一条警告消息“警告:变量XYZ的尺度估计器小于或等于0。变量XYZ将不会标准化,并且会为其尺度估计器分配一个缺失值。”它还将所有未缺失的整数更改为小数。我只想将缺少的值替换为0,而不是标准化整个数据集。我在这里做错了什么吗?我在数据步骤中用0替换了缺失的数据,添加了:Options missing='0';有没有办法让SAS计算中位数(8,6,2,0,0)并给出2而不是6作为结果?它给出6是因为它忽略了那些0。最小值(8,6,2,0,0)=0而不是2。缺少的选项不会替换任何内容,它只是显示为0,类似于格式的工作方式。基础数据仍然丢失,将不包括在内。这解释了为什么SAS没有输出我所期望的数据。你能建议一种用零替换缺失值的方法吗?我有几个缺少值的列/变量,我想用0替换它们以计算摘要统计信息。在这种情况下,一个简单的if语句行得通吗?@TivosJar您没有尝试下面Craig的解决方案吗?它可以将所有数值替换为0。如果需要特定的变量,可以列出它们。否则,如果它更复杂,是的,一个if语句将很好地工作。我确实尝试了Craig建议的解决方案。但是,我收到一条警告消息“警告:变量XYZ的尺度估计器小于或等于0。变量XYZ将不会标准化,并且会为其尺度估计器分配一个缺失值。”它还将所有未缺失的整数更改为小数。我只想将缺少的值替换为0,而不是标准化整个数据集。我做错什么了吗?