SELECT语句在DATA步中的运用
SAS语言真是博大精深,在以前我只知道SELECT语句可以在PROC SQL中使用,直到这两天在一本书中看到SELECT语句还可以用在DATA步中。
通过SELECT语句构造不同的条件来操作观测。SELECT语句的基本形式如下:
SELECT <select-表达式>;
WHEN when-表达式 可执行语句;
<…WHEN when-表达式 可执行语句; >
<OTHERWISE 可执行语句;>
END;
select-表达式指定计算单个值的SAS表达式。
when-表达式为任意SAS表达式。在SELECT语句和END语句之间的语句称为SELECT组。SELECT组中要求至少有一条WHEN语句,而WHEN语句中要求至少有一个when-表达式。when-表达式为真时,执行跟随其后的可执行语句;否则,忽略其后可执行语句。
可执行语句可以是任何可执行的SAS语句,包括赋值语句、DO语句、SELECT语句或空语句等。空语句用于WHEN语句中时,SAS会认为该条件为真,但是不做任何操作。
OTHERWISE从句中指定当所有的WHEN条件都不满足时需要执行的语句。
对数值变量和字符变量的处理方式略有不同,我们拿sashelp中的class数据集为例。
1、对数值变量进行处理,新建level变量,当weight大于100归为肥胖,weight大于80小于100归为标准,weight小于80归为偏瘦,代码如下:
data class;
set sashelp.class;
length level $10;
select;
when (Weight>100) level="肥胖";
when (80<Weight<=100) level="标准";
otherwise level="偏瘦";
end;
run;
2、对字符变量进行处理,新建sex_dex变量,当sex=“1” sex_des="男",当sex=“2” sex_des="女",代码如下:
data class1;
set sashelp.class;
length sex_des $10;
select(sex);
when ("1") sex_des="男";
when ("2") sex_des="女";
otherwise sex_des="变态";
end;
run;
请前往:http://www.mark-to-
win.com/TeacherV2.html?id=166