month60您的数据中每个月至少有1行是使用completetypes
选项,例如
proc summary data = sashelp.class completetypes;
class sex age;
var weight;
output out = mysummary mean=;
run;
对于Sex = F,Age = 16,这会产生频率为0的行,而不是完全跳过该输出。
即使某些数值从未出现在数据中的任何位置,一种更可靠但更劳动密集的方法即可使用classdata
选项,例如,
data myclassdata;
do SEX = 'M','F';
do AGE = 13 to 17;
output;
end;
end;
run;
proc summary nway data = sashelp.class classdata=myclassdata exclusive;
class sex age;
var weight;
output out = mysummary2 mean=;
run;
这里的exclusive
选项将输出限制到存在于所述数据集classdata
电平的组合。如果没有它,您至少会得到classdata中指定的那些行,并根据观察到的单向值为所有可能的组合添加行,就像您指定了completetypes
一样。
你能告诉我们表是如何创建的吗?你需要描述在哪里找到或如何确定所有可能的月份。 – Tom
它来自一个大表,每个销售完成,销售日期和销售价值。然后按日期和月份对日期进行分组,并且销售额累计。因此,如果某个月没有销售,那么该月不会出现在此汇总表中(如上所述)。我能想到的唯一解决方案是在0个销售额中添加虚拟数据,以便在每个月(和几年)都会下降并迫使他们出现。 – user43080
月份超过12个月的原因是,这笔交易可能在2011年正式开始,但实际上在2016年完成,即60个月后。虽然我不确定这对于提出解决方案太有帮助 – user43080