【问题标题】:Proc Freq for values that doesn't exist.Proc Freq 用于不存在的值。
【发布时间】:2016-03-28 14:05:56
【问题描述】:

我有一个包含颜色列的数据集。我在此列中有值 Black White Red。当我尝试计算表格列的频率时,我得到了黑色、白色和红色的结果。但我还需要为绿色和蓝色显示零频率。如果我在颜色列中没有这两种颜色,我该怎么办?

【问题讨论】:

标签: sas


【解决方案1】:

最简单的方法是使用PROC MEANS,如下所示:

proc format;
  value colors 1 = "Black"
               2 = "White"
               3 = "Red"
               4 = "Green"
               5 = "Blue";
run;

data mytable;
  input color;
  format color colors.;
  datalines;
1
2
1
3
;

proc means data=myTable completetypes;
   class color / preloadfmt;
run;


另一种方法是使用PROC TABULATE,指定一个包含所有可能值的附加输入表(classdata 参数),如下所示:

data allColors;
  input color;
  format color colors.;
  datalines;
1
2
3
4
5
;

proc tabulate data=mytable classdata = allColors;
  class color;
  table color / misstext = "0";
run;

结果:

【讨论】:

    【解决方案2】:

    使用缺失选项:

    MISSING
    treats missing values as a valid nonmissing level for all TABLES variables. 
    Displays missing levels in frequency and crosstabulation tables and includes 
    them in computations of percentages and statistics.
    

    另见:http://support.sas.com/documentation/cdl/en/procstat/63104/HTML/default/viewer.htm#procstat_freq_sect016.htm

    【讨论】:

    • 如果列中没有值,它不会出现,无论是否缺少指定。如果在其他组中可用,可以使用稀疏选项来显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多