SAS 过程频率和 gchart 显示附加值的频率/条



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

这取决于

您运行PROC FREQ的确切方式。 它具有sparse选项,该选项告诉它在创建输出数据集时为表上的每个逻辑单元格创建一个值;通常,虽然交叉表中有一个缺失值(或零)的单元格,但如果将其输出到数据集(垂直的,即 X 轴和 Y 轴值的每个组合都放在一行中),则这些行将被忽略。 稀疏确保不会发生这种情况;在更大的(n维)交叉表中,它为每个变量的每个可能组合创建行,甚至是数据中没有出现的行。

但是,如果您只是在做

proc freq data=mydata;
tables myvar;
run;

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

为此,您必须使用class变量过程。 Proc Tabulate 是这样的过程之一,其语法(有点)类似于 Proc Freq。 您需要对 proc 语句使用 CLASSDATA,或在表语句上使用PRINTMISS。 在前一种情况下,您不需要使用格式,我不相信。 在后一种情况下(PRINTMISS),您需要为变量创建一种格式(如果您还没有),其中包含要显示的所有级别的数据(即使它只是一种标识格式,例如将字符串格式化为相同的字符串),并在 proc 语句上指定PRELOADFMT。 有关更多详细信息,请参见此手册页。

相关内容

  • 没有找到相关文章

最新更新