看板 Statistics 關於我們 聯絡資訊
我的資料欄位中有一欄是英文字母 例如: 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的訊息 不知道有沒有版友可以幫忙 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.227.118.15
tew:那表示你的變項不是'G' 而可能是'G ' 有空欄資料 09/11 22:12
dofu1943:那我找找看有沒有指令可以將空欄位消去~~感謝指導 09/12 07:41
yhliu:SAS 的文字變數不是該加 "$" 嗎? (古老的SAS是這樣的) 09/12 12:36
後來我再去看了一下,發現我的G,H,M 是另一個變數欄位用substr所取出來的 所以應該沒有空欄才對 而且我用了'G '也無法順利完成when的指令 至於yhliu大大的說法,我明天試試看,是指$g$這樣嗎還是$g就好? 不過我的sas是9.2版的,不知道屬不屬於古老的sas~~~ 感謝兩位大大的幫忙 ※ 編輯: dofu1943 來自: 36.227.123.14 (09/12 20:48)
tew:yhliu大的做法是在讀取資料的時候 宣告是文字變項 09/12 22:02
tew:之後應該是用不到了 09/12 22:02
tew:if substr(varb,1,1) in ('G','H' then varc=1;else varc=0; 09/12 22:03
tew:不過 我用你的語法 基本上是跑得出來的 除非你的資料 09/12 22:05
tew:有大小寫之分 就是 g 而非G 09/12 22:06
※ 編輯: dofu1943 來自: 36.227.121.148 (09/13 19:45)
imaltar: varC=1 後面要加分號";" 09/14 20:08
dofu1943:已試出來了~感恩 09/14 22:38