Re: [問題] sas的when指令問題

看板Statistics作者 (咖啡王子)時間11年前 (2012/09/12 22:07), 編輯推噓2(206)
留言8則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

09/13 19:47, , 1F
t大感謝您的幫忙,不過您上篇推文的語法
09/13 19:47, 1F

09/13 19:48, , 2F
if substr(varb,1,1) in ('G','H' then varc=1;else varc
09/13 19:48, 2F

09/13 19:49, , 3F
是不是加上=0)就可以了,因為想說有沒有可能是我把substr
09/13 19:49, 3F

09/13 19:50, , 4F
和when分開寫所以產生未預料到的結果,故想直接寫一次語法
09/13 19:50, 4F

09/13 19:51, , 5F
就搞定,不過,您這篇提供的寫法,我之前的確就試過了,也有
09/13 19:51, 5F

09/13 19:51, , 6F
注意大小寫,但沒有跑出來想要的東西,而且...log檔也沒有
09/13 19:51, 6F

09/13 19:52, , 7F
秀出來ERROR的訊息~~所以....蠻怪的,再次感謝t大的幫忙
09/13 19:52, 7F

09/14 21:58, , 8F
t大~~感謝您,我今天試出來了,感恩感恩
09/14 21:58, 8F
文章代碼(AID): #1GK9SN9o (Statistics)
討論串 (同標題文章)
文章代碼(AID): #1GK9SN9o (Statistics)