示例数据
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创建上述变量。
提前致谢!
答案 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