我正在尝试获取某个变量列表的模式。当模式不是唯一的时,我想返回模式的平均值,以便获取模式的子查询(在更大的查询中)不返回两个值。但是,当模式是唯一的时,由于某种原因,平均查询会返回一个缺失值。
我有以下示例数据:
data have;
input betprice;
datalines;
1.05
1.05
1.05
6
run;
PROC PRINT; RUN;
proc sql;
select avg(betprice)
from
(select betprice, count(*) as count_betprice from have group by betprice)
having count_betprice = max(count_betprice);
quit;
如果我在 betprice 字段中添加更多观察值以使模式不是唯一的,我会返回平均值。
data have;
input betprice;
datalines;
1.05
1.05
1.05
6
6
6
run;
PROC PRINT; RUN;
如何更改此查询,以便始终返回模式或两个最常见值的平均值。
感谢您对此的任何帮助。