如何将SAS中的宏添加到日期变量中以分别为每个月创建数据集?

时间:2016-03-27 17:59:45

标签: sas sas-macro

如何在下面的代码中添加宏来分别为一年中的每个月做同样的事情?例如,我也需要创建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;

1 个答案:

答案 0 :(得分:1)

您可以在代码中添加%macro monthly(date)%mend,从代码中创建宏。然后,您可以使用手动呼叫或呼叫执行重复呼叫它。

%macro monthly(date);

 data sourceg.trades_&date;
 *rest of sas code;

 run;

%mend;

%monthly(nov2008);
%monthly(jan2008);

鉴于您目前对此问题的解释,我不确定除此之外还有什么建议。我将把电话执行作为练习留给你,因为它在这里得到了很好的报道。此外,如果你有一个特定的日期范围,你可以添加一个循环,但我不知道你的情况。