我正在尝试使用AGE创建2个新变量(AGEGRP和AGEGRP2)。 AGE变量包含我想划分为范围的数字年龄。
这是我的代码:
pod try
这将产生以下内容:
pod try
我怀疑(<= __ <)之间的语句有问题。如何获得正确的AGEGRP2范围?
答案 0 :(得分:2)
如果不包括所有ELSE
,则最后一个else子句将覆盖早期IF语句的结果。如果...然后...;否则...然后...; ELSE ...;
在使用变量之前,请确保先定义变量。否则,SAS将猜测如何根据首次使用它们来定义它们。在您的示例中,AGEGRP的长度为$ 3,AGEGRP2的长度为$ 2。
在开始进行IF级联之前添加此行。
length AGEGRP AGEGRP2 $11;
答案 1 :(得分:1)
您的问题是IF / ELSE IF。您尚未将它们正确地链接在一起。
if (AGE < 18) then AGEGRP = '<18'; * Codes less than 18;
*codes 18 to 65;
if (18 <= AGE < 65) then AGEGRP = '>=18 to <65';
*anything else (including < 18) is recoded;
else if (AGE >= 65) then AGEGRP = '>=65';
这应该对您有用。
if (AGE < 18) then AGEGRP = '<18'; * Codes less than 18;
*codes 18 to 65;
else if (18 <= AGE < 65) then AGEGRP = '>=18 to <65';
*anything else (including < 18) is recoded;
else if (AGE >= 65) then AGEGRP = '>=65';