代码之家  ›  专栏  ›  技术社区  ›  Aaraeus

是否有办法在SAS中以proc格式识别特殊缺失值?

  •  0
  • Aaraeus  · 技术社区  · 7 年前

    我有一些类似于下面的代码:

     proc format;
     ** for numeric variables;
     value missf
     . = ‘Missing’
     other = ‘Non-Missing’
     ;
    
     ** for character variables;
     value $missf
     ‘ ‘ = ‘Missing’
     other = ‘Non-Missing’
     ;
     run;
    
     proc freq data=rawds;
     table _all_ / missing;
     format _character_ $missf. _numeric_ missf.;
     run; 
    

    如你所见,我们有格式 missf 用于数值。但是,我的数据有特殊的缺失值( .A , .B , .C ,等等),当前不会标记为丢失,因为格式 密苏里州 仅查找 . .

    我知道我可以在proc格式中添加更多的行,即执行类似的操作,但感觉效率很低:

    . = 'Missing'
    .a = 'Missing'
    .b = 'Missing'
    .c = 'Missing'
    ...
    .A = 'Missing'
    ...
    .Z = 'Missing'
    

    有没有一种方法可以在不必写52行代码(26个小写字母,26个大写字母)的情况下添加特殊的缺失值?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Tom    7 年前

    缺少的值具有顺序 ._ 是最小的,然后是常规缺失, . ,然后 .A .Z .

    value missf ._-.z = 'Missing' other='Non-missing' ;
    

    或者,您可以使用LOW-HIGH range来捕获非缺失值,另一种情况下捕获缺失值。

    value missf low-high='Non-missing' other='Missing';