2015-09-28 66 views
1

我需要創建SAS信息,將所有案例版本的「男性」和「女性」更改爲數字。SAS格式程序,invalue語句,UPCASE選項不起作用

我在documentation中發現有UPCASE選項可以完成這項工作。 「將所有的原始數據值以大寫他們相比,在可能的範圍之前,如果你使用UPCASE,然後確保數值或範圍你是大寫指定」添加UPCASE選項後無來者

不幸的輸入值被正確讀取。 SAS版本ID 9.2。 我的代碼如下。

options fmtsearch=(WORK); 
proc format lib=WORK; 
invalue gender UPCASE 
MALE = 1 
FEMALE = 2 
;run; 

data _null_; 
    q='MALE'; 
    x=input(q,gender.); 
    put q=; 
    put x=; 
run; 

日誌是:

NOTE: Invalid argument to function INPUT at line 186 column 7. 
q=MALE 
x=. 
q=MALE x=. _ERROR_=1 _N_=1 

什麼是這個選項的正確用法?

+0

在您的格式把男/女的報價。 – Reeza

+0

我們不必在這裏使用它們(聯機文檔:如果忽略字符串周圍的單引號或雙引號,則INVALUE語句假定引號在那裏)。這並不能解決問題。 –

回答

1

很簡單,只要把UPCASE括號內...

+0

謝謝@Keith。這是我第一次看到SAS讓和忽略自由文本。代碼沒有任何通知: 'proc format lib = WORK; invalue sex SAS is very FLEXIBLE HERE MALE = 1 FEMALE = 2 ; run; –