【发布时间】:2019-01-07 16:14:12
【问题描述】:
我想创建一个名为“currency_rate”的宏,它根据规定的条件调用正确的值 ('new_rate' 或静态值 1.5):
%macro MONEY;
%Do i=1 %to 5;
data get_currency_&i (keep=month code new_rate currency_rate);
set Table1;
if month = &i and code = 'USD' then currency_rate=new_rate;
else currency_rate=1.5;
run;
data _null_;
set get_currency_&i;
if month = &i and code = 'USD' then currency_rate=new_rate;
else currency_rate=1.5;
call symput ('currency_rate', ???);
run;
%End;
%mend MONEY;
%MONEY
我对 do 循环和第一个数据步骤很满意。这是我坚持的呼叫符号。 call symput 是否是正确的函数,可以为一个宏分配两个可能的值?
我将在 proc sql 中使用“currency_rate”的方式的 sn-p 示例:
t1.income/¤cy_rate.
我是初学者级别的 SAS 用户,任何指导都会很棒!
谢谢
【问题讨论】: