NGI IF RAMN LASG LASD RFA1 RFA2 Order Money
2001 6 52 15 200505 1 6 1 9.07
2002 1 23 23 200509 1 6 1 23.29
2003 8 99 16 200505 1 6 1 12.41
2004 20 100 5 200511 4 4 1 5.27
2005 11 114 10 200603 3 6 1 10.63
2006 9 138 20 200512 1 6 1 15.40
需要创建一个用于货币的二进制变量,如果money < 20
,则为0,否则为1,使用where语句。是否使用过if,但是哪里总是给我0 obs错误。
答案 0 :(得分:2)
where
语句仅用于子集进入步骤的数据。您不能像使用IF / THEN语句那样使用它来生成赋值语句。
data want;
set have ;
if money < 20 then newvar=0;
else newvar=1;
run;
请注意,SAS将布尔表达式评估为0(假)或1(真),因此您可以使用赋值语句并跳过IF。
data want;
set have ;
newvar = money >= 20;
run;