如何在下面的代码中添加宏来分别为一年中的每个月做同样的事情?例如,我也需要创建sourceg.trades_nov2008。谢谢。
data sourceg.trades_dec2008(drop=dt);
set sourceh.trades_: indsname=ds_name open=defer;
dt = input(scan(ds_name, 2, "_"), date9.);
day = day(dt);
month = month(dt);
year = year(dt);
newtime=time/1000;
format newtime time12.3;
Hour=hour(newtime);
Minute=minute(newtime);
Second=second(newtime);
run;
答案 0 :(得分:1)
您可以在代码中添加%macro monthly(date)
和%mend
,从代码中创建宏。然后,您可以使用手动呼叫或呼叫执行重复呼叫它。
%macro monthly(date);
data sourceg.trades_&date;
*rest of sas code;
run;
%mend;
%monthly(nov2008);
%monthly(jan2008);
鉴于您目前对此问题的解释,我不确定除此之外还有什么建议。我将把电话执行作为练习留给你,因为它在这里得到了很好的报道。此外,如果你有一个特定的日期范围,你可以添加一个循环,但我不知道你的情况。