SAS变量,缺失和非缺失观察

时间:2017-05-12 19:36:16

标签: sas

示例数据

tail

我的代码

id  x  y  expected_new_x  expected_new_y
1   0  .  0               .
1   .  .  0               .
1   0  .  0               .

但是我将if x > =0 and x=. then expected_new_x=0; else expected_new_x=1; 设为1而不是0。

如果x变量包含至少一个非缺失的obs,我希望将新的x变量编码为0.

请帮助我使用SAS创建上述变量。

提前致谢!

1 个答案:

答案 0 :(得分:0)

J_lard有正确的想法。报价= J_lard:

if x >= 0 or missing(x)

在SAS中,缺失值(。)被认为小于任何其他数字。小型演示:

data test;
    input dummy;
    cards; 
    -1
    -0.7
    -0.5
    -0.1
    -0.01
    . 
    0.01
    0.1
    0.5
    1 
    ;
run;


data test_result; 
    set test;
    smaller_than_zero= dummy < 0 ;
    larger_than_zero= dummy > 0 ;
    larger_than_empty= dummy > . ;
    smaller_than_empty= dummy < . ;
run;

或者说:

%put %sysevalf(-100 > .);

从结果或下面的汇总中可以看出,与任何数字进行比较时,greater_than_empty为真。

有关缺失值的更多信息,我建议使用此论文:http://analytics.ncsu.edu/sesug/2005/TU06_05.PDF