我想用用戶定義的格式爲觀察定義一個新的值。但是,我的if/then/else語句似乎僅適用於年份值爲「2014」的觀察值。 put語句不適用於其他值。在SAS中,put語句在第一個語句中是藍色的,在另外兩個語句中是黑色的。這裏是我的意思圖片:使用用戶自定義格式的put函數有條件地定義一個新字段
有誰知道我在這裏失蹤?這是我的完整代碼:
data claims_t03_group;
set output.claims_t02_group;
if year = "2014" then test = put(compress(lookup,"_"),$G_14_PROD35.);
else if year = "2015" then test = put(compress(lookup,"_"),$G_15_PROD35.);
else test = put(compress(lookup,"_"),$G_16_PROD35.);
run;
這裏是我的意思,當我說的過程似乎「工作」於2014年爲例:
正如你所看到的,當Year值爲2014,格式查找正常工作,測試字段返回我期望的值。但是,在2015年和2016年,測試字段將返回查找值而不使用任何格式。
'put'不應該是藍色的,如果它是在上面的代碼 - 這不是在我,反正。你能證實它仍然是藍色的嗎?如果是這樣,那麼你還沒有正確轉錄你的代碼,或者你的代碼早些時候還有其他一些問題(試着只是把這個數據步驟放到新窗口中)。 – Joe
只是爲了澄清,如果它是'語句'是藍色的,如果它是'函數'則是黑色。 'put'是兩件事情,所以取決於語法分析器來解決這個問題。如果你把它看成藍色,那麼它認爲你使用'statement',這意味着它可能看不到'test ='部分。 – Joe
最後,您需要解釋「工作」的含義。你在2014年獲得的價值是什麼,但其他兩個都沒有?或者你在三年內從2014年的格式獲得價值?將數據組合成數據的例子非常有用 - 組成幾種格式(可以使用VALUE語句)和一些示例行,並將其編輯到問題中。 – Joe