如何使用 SAS 中的计算从现有宏变量创建新的宏变量?

blu*_*rey 4 sas sas-macro

我想从已存在的其他宏变量创建一个新的宏变量。

我尝试了多种变体call symput%evalinput都无济于事......

我想d评估为 3 / 30 = .10。


*****  taken directly from the sas help files...  ;

%let a=1+2;
%let b=10*3;
%let c=5/3;
%let eval_a=%eval(&a);
%let eval_b=%eval(&b);
%let eval_c=%eval(&c);

%put &a is &eval_a;
%put &b is &eval_b;
%put &c is &eval_c; * not sure why this evaluates to 1, but I'm sure it's documented somewhere... ;


*****  This evaluates to 0...

%let d = %eval(%eval(&a) / %eval(&b)) ; 

%put &d ;
Run Code Online (Sandbox Code Playgroud)

非常感谢...

Lon*_*ish 5

%eval 只会返回一个整数。要获取小数,您需要使用 %sysevalf。