SAS proc Freq&;gchart显示附加值';s频率/巴

SAS proc Freq&;gchart显示附加值';s频率/巴,sas,gchart,Sas,Gchart,这可能是个奇怪的问题。我有一个数据集,包含许多问题的数据,如同意,中立,不同意。并没有太多的观察结果,所以对于某些问题,一个或多个选项的频率为0,比如说中性。当我运行proc freq时,由于该变量中显示neutral,因此表中不包含neutral的行。我最终得到了不同行数的表。我想知道是否有显示这些0频率行的选项。对于相同的数据集,我还需要运行proc gchart,对于不同的条数,我会遇到相同的问题。请帮我做这个。谢谢大家! 这取决于您运行PROC FREQ的确切方式。它有sparse选项,

这可能是个奇怪的问题。我有一个数据集,包含许多问题的数据,如
同意
中立
不同意
。并没有太多的观察结果,所以对于某些问题,一个或多个选项的频率为0,比如说中性。当我运行
proc freq
时,由于该变量中显示neutral,因此表中不包含neutral的行。我最终得到了不同行数的表。我想知道是否有显示这些0频率行的选项。对于相同的数据集,我还需要运行
proc gchart
,对于不同的条数,我会遇到相同的问题。请帮我做这个。谢谢大家!

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

然而,如果你只是

proc freq data=mydata;
tables myvar;
run;
这对你没什么帮助,因为SAS并没有任何东西去弄清楚应该有什么


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

有关
GCHART
方面的内容,回答
PROC FREQ
也可以回答这个问题。如果没有,请提供一些您现在正在做的示例代码,以及您是否愿意接受
SGPLOT
,后者可能更能处理此问题。