【发布时间】:2014-11-18 13:37:53
【问题描述】:
我想遍历不同的列表,并根据一个“初始”字符串选择不同的变量集。
示例:我有以下列表和变量集。
%let KRW_list = USD JPY HKD;
%let KRW_vars = FX import export;
%let NZD_list = USD AUD JPY GBP;
%let NZD_vars = FX CA;
现在,如果我有
%let ccy = KRW;
然后我想遍历 KRW_list 中的元素并使用 KRW_vars 列表中的变量。当然,我可以制作一个将所有 3 个作为参数的宏。但我想要一个只使用 ccy 作为参数的宏,然后选择正确的字符串列表。我很天真地想到了以下几点:
%macro selectlist(ccy1);
%let n = %sysfunc(countw(&ccy1._list));
%do I = 1 %to &n;
proc timeseries data = &ccy1._&ccy2. out= tmp;
.....[some commands] ;
var &ccy1._vars ;
run;
%end;
%mend;
这不起作用。提前致谢。
【问题讨论】: