SELECT語句在DATA步中的運(yùn)用
SAS語言真是博大精深,在以前我只知道SELECT語句可以在PROC SQL中使用,直到這兩天在一本書中看到SELECT語句還可以用在DATA步中。
通過SELECT語句構(gòu)造不同的條件來操作觀測。SELECT語句的基本形式如下:
SELECT <select-表達(dá)式>;
WHEN when-表達(dá)式 可執(zhí)行語句;
<…WHEN when-表達(dá)式 可執(zhí)行語句; >
<OTHERWISE 可執(zhí)行語句;>
END;
select-表達(dá)式指定計算單個值的SAS表達(dá)式。
when-表達(dá)式為任意SAS表達(dá)式。在SELECT語句和END語句之間的語句稱為SELECT組。SELECT組中要求至少有一條WHEN語句,而WHEN語句中要求至少有一個when-表達(dá)式。when-表達(dá)式為真時,執(zhí)行跟隨其后的可執(zhí)行語句;否則,忽略其后可執(zhí)行語句。
可執(zhí)行語句可以是任何可執(zhí)行的SAS語句,包括賦值語句、DO語句、SELECT語句或空語句等??照Z句用于WHEN語句中時,SAS會認(rèn)為該條件為真,但是不做任何操作。
OTHERWISE從句中指定當(dāng)所有的WHEN條件都不滿足時需要執(zhí)行的語句。
對數(shù)值變量和字符變量的處理方式略有不同,我們拿sashelp中的class數(shù)據(jù)集為例。
1、對數(shù)值變量進(jìn)行處理,新建level變量,當(dāng)weight大于100歸為肥胖,weight大于80小于100歸為標(biāo)準(zhǔn),weight小于80歸為偏瘦,代碼如下:
data class;
set sashelp.class;
length level $10;
select;
when (Weight>100) level="肥胖";
when (80<Weight<=100) level="標(biāo)準(zhǔn)";
otherwise level="偏瘦";
end;
run;
2、對字符變量進(jìn)行處理,新建sex_dex變量,當(dāng)sex=“1” sex_des="男",當(dāng)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="變態(tài)";
end;
run;
請前往:http://www.mark-to-
win.com/TeacherV2.html?id=166