1
我想在SAS中創建一個新變量,如果變量「TEXT」中的觀察結果包含8個數字,則該變量的值爲1。問題是,TEXT是一個字符變量。是否有可能在SAS中進行某種格式的搜索?SAS特定觀察格式
我想在SAS中創建一個新變量,如果變量「TEXT」中的觀察結果包含8個數字,則該變量的值爲1。問題是,TEXT是一個字符變量。是否有可能在SAS中進行某種格式的搜索?SAS特定觀察格式
我假設'8個數字',你實際上意味着8位數字。對於8個單獨的數字,這將是不同的。 所以像下面的代碼可能會有所幫助。 修飾語「KD」意守位數壓縮功能在這裏的神奇:
data indata;
length TEXT $20;
input TEXT;
datalines;
a
123
12345678
A12345678
;
run;
data outdata;
set indata;
length TEXT_DIGITS $20 _8_DIGIT_INDICATOR 3;
TEXT_DIGITS = compress(TEXT, , 'kd');
if length(TEXT_DIGITS)=8 then _8_DIGIT_INDICATOR = 1;
run;
調整邏輯,因爲你需要 - 例如如果輸入值中沒有其他字符是允許的或其他的。 也像ANYDIGIT,NOTDIGIT的功能可能是有用的。
真的有幫助。我的意思是數字,是的。如果我不想在數字被例如字母分隔的情況下進行觀察,那麼「。」或「/」,有沒有簡單的方法來刪除這些? –
此外,在此代碼中,該過程僅在一個數據集indata上完成。是否有可能讓sas爲大量數據集做好準備,比如說一百個數據集,都包含在一個庫中? –