2

这可能是一个奇怪的问题。我有一个数据集包含许多问题的数据,如agree, neutral, disagree...。没有太多观察结果,因此对于某些问题,一个或多个选项的频率为 0,例如中性。当我运行时proc freq,由于中性显示在该变量中,因此该表不包含中性行。我最终得到具有不同行数的表。我想知道是否有显示这些 0 频率行的选项。我还需要proc gchart针对相同的数据集运行,并且由于柱数不同,我会遇到同样的问题。请帮助我。谢谢!

4

1 回答 1

2

这取决于您运行PROC FREQ. 它有一个sparse选项,告诉它在创建输出数据集时为表上的每个逻辑单元格创建一个值;通常,虽然交叉表中有一个缺少值(或零)的单元格,但如果将其输出到数据集(垂直,即 x 和 y 轴值的每个组合都放在一行中),那么这些行是离开了。Sparse 确保不会发生这种情况;在更大的(n 维)交叉表中,它为每个变量的每个可能组合创建行,即使是数据中没有出现的变量。

但是,如果你只是在做

proc freq data=mydata;
tables myvar;
run;

这对你没有帮助,因为 SAS 并没有什么可以继续弄清楚应该有什么。

为此,您必须使用class可变过程。 是这样的过程之一,并且在其语法(有点)Proc Tabulate上类似于。Proc Freq您需要CLASSDATA在 proc 语句或PRINTMISStable 语句上使用。在前一种情况下,您不需要使用格式,我不相信。在后一种情况下PRINTMISS(字符串到相同的字符串),并PRELOADFMT在 proc 语句中指定。有关更多详细信息,请参见此手册页

于 2014-03-31T03:32:42.663 回答