2017-05-30 88 views
-2

我遇到以下問題。'%let'等於SAS用於設置變量等於數學中使用的數字嗎?

我想用公式中使用的值定義變量。

例如,

%讓免賠額= 1000;

(在代碼後)

...(1500 - &免賠額)...;

這似乎不工作?當我在代碼的其餘部分硬編碼值時,它完美地工作。有什麼建議?謝謝!

+0

「似乎沒有工作」是什麼意思?顯示完整的代碼,錯誤消息或不良行爲。 – Joe

回答

0

SAS宏變量值是文本。所以你需要使用%eval進行計算。

%let a= 1000; 
%put 10000-&a;/*resolves it text value*/ 
output is 10000-1000 
%let a= 1000; 
%put %eval(10000-&a);/*resolves it text value*/ 
output is 9000 
+0

謝謝Kiran!這有很大幫助。我有一些嵌套在「do」和 「if」語句中的計算。是否只需在公式外部使用變量放置'%eval'? – indiansrulz

+0

這也不適用於小數點,對嗎? – indiansrulz

+0

是的。或%eval在你的宏變量前面爲1000 +%eval(&a)。如果你有小數,使用%sysevalf – Kiran