这可能是一个奇怪的问题。我有一个数据集包含许多问题的数据,如agree
, neutral
, disagree
...。没有太多观察结果,因此对于某些问题,一个或多个选项的频率为 0,例如中性。当我运行时proc freq
,由于中性显示在该变量中,因此该表不包含中性行。我最终得到具有不同行数的表。我想知道是否有显示这些 0 频率行的选项。我还需要proc gchart
针对相同的数据集运行,并且由于柱数不同,我会遇到同样的问题。请帮助我。谢谢!
问问题
422 次
1 回答
2
这取决于您运行PROC FREQ
. 它有一个sparse
选项,告诉它在创建输出数据集时为表上的每个逻辑单元格创建一个值;通常,虽然交叉表中有一个缺少值(或零)的单元格,但如果将其输出到数据集(垂直,即 x 和 y 轴值的每个组合都放在一行中),那么这些行是离开了。Sparse 确保不会发生这种情况;在更大的(n 维)交叉表中,它为每个变量的每个可能组合创建行,即使是数据中没有出现的变量。
但是,如果你只是在做
proc freq data=mydata;
tables myvar;
run;
这对你没有帮助,因为 SAS 并没有什么可以继续弄清楚应该有什么。
为此,您必须使用class
可变过程。 是这样的过程之一,并且在其语法(有点)Proc Tabulate
上类似于。Proc Freq
您需要CLASSDATA
在 proc 语句或PRINTMISS
table 语句上使用。在前一种情况下,您不需要使用格式,我不相信。在后一种情况下PRINTMISS
(字符串到相同的字符串),并PRELOADFMT
在 proc 语句中指定。有关更多详细信息,请参见此手册页。
于 2014-03-31T03:32:42.663 回答