作者tew (咖啡王子)
站內Statistics
標題Re: [問題] sas的when指令問題
時間Wed Sep 12 22:07:17 2012
※ 引述《dofu1943 (那就念吧~~)》之銘言:
: 我的資料欄位中有一欄是英文字母
: 例如:
: varA varB
: 1 G
: 2 H
: 3 H
: 4 M
: 5 G
: 我想要將varB的H和M變成1並且成為varC
: 所以我用
: select;
: when ( varB='H' or varB='M' ) varC=1
: otherwise varC=0;
: end;
: 因為有爬過文,有人提到如果要sas篩選的欄位是文字
: 例如變數b的英文字母
: 要使用' '才行
: 但我也試了,就是不行,而且varC產生的數值會全部變成0
: 另外,我也在if then delete的指令中
: 對文字的欄位使用
: 例如
: if varB='G' then delete;
: 但是卻一筆都沒有被刪除
: 也沒有產生error的訊息
: 不知道有沒有版友可以幫忙
: 感謝
data a;
input varA varB $;
datalines;
1 G
2 H
3 H
4 M
5 G
;
run;
data a;
set a;
select;
when ( varB='H' or varB='M' ) varC=1;
otherwise varC=0;
end;
run;
這樣跑是OK的
所以要看看你的資料和log檔才有辦法知道跑不出來的原因
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.224.42.153
推 dofu1943:t大感謝您的幫忙,不過您上篇推文的語法 09/13 19:47
→ dofu1943:if substr(varb,1,1) in ('G','H' then varc=1;else varc 09/13 19:48
→ dofu1943:是不是加上=0)就可以了,因為想說有沒有可能是我把substr 09/13 19:49
→ dofu1943:和when分開寫所以產生未預料到的結果,故想直接寫一次語法 09/13 19:50
→ dofu1943:就搞定,不過,您這篇提供的寫法,我之前的確就試過了,也有 09/13 19:51
→ dofu1943:注意大小寫,但沒有跑出來想要的東西,而且...log檔也沒有 09/13 19:51
→ dofu1943:秀出來ERROR的訊息~~所以....蠻怪的,再次感謝t大的幫忙 09/13 19:52
推 dofu1943:t大~~感謝您,我今天試出來了,感恩感恩 09/14 21:58