程序运行中需调用一个汇率换算宏,比较巨大:
%macro exchange();
if ORG="168"
then do;
select;
when (DAT_WORK=mdy(2,2,2010)) AMT_BALANCE=AMT_BALANCE*6.8271;
when (DAT_WORK=mdy(3,2,2010)) AMT_BALANCE=AMT_BALANCE*6.8267;
when (DAT_WORK=mdy(4,2,2010)) AMT_BALANCE=AMT_BALANCE*6.8256;
when (DAT_WORK=mdy(5,2,2010)) AMT_BALANCE=AMT_BALANCE*6.8254;
when (DAT_WORK=mdy(6,2,2010)) AMT_BALANCE=AMT_BALANCE*6.8305;
when (DAT_WORK=mdy(7,2,2010)) AMT_BALANCE=AMT_BALANCE*6.7722;
when (DAT_WORK=mdy(8,2,2010)) AMT_BALANCE=AMT_BALANCE*6.7743;
when (DAT_WORK=mdy(9,2,2010)) AMT_BALANCE=AMT_BALANCE*6.8065;
when (DAT_WORK=mdy(10,2,2010)) AMT_BALANCE=AMT_BALANCE*6.6900;
when (DAT_WORK=mdy(11,2,2010)) AMT_BALANCE=AMT_BALANCE*6.6770;
when (DAT_WORK=mdy(12,2,2010)) AMT_BALANCE=AMT_BALANCE*6.6621;
when (DAT_WORK=mdy(1,2,2011)) AMT_BALANCE=AMT_BALANCE*6.5896;
when (DAT_WORK=mdy(2,2,2011)) AMT_BALANCE=AMT_BALANCE*6.5910;
when (DAT_WORK=mdy(3,2,2011)) AMT_BALANCE=AMT_BALANCE*6.5725;
when (DAT_WORK=mdy(4,2,2011)) AMT_BALANCE=AMT_BALANCE*6.5472;
when (DAT_WORK=mdy(5,2,2011)) AMT_BALANCE=AMT_BALANCE*6.4900;
when (DAT_WORK=mdy(6,2,2011)) AMT_BALANCE=AMT_BALANCE*6.4812;
when (DAT_WORK=mdy(7,2,2011)) AMT_BALANCE=AMT_BALANCE*6.4644;
when (DAT_WORK=mdy(8,2,2011)) AMT_BALANCE=AMT_BALANCE*6.4375;
when (DAT_WORK=mdy(9,2,2011)) AMT_BALANCE=AMT_BALANCE*6.3816;
when (DAT_WORK=mdy(10,2,2011)) AMT_BALANCE=AMT_BALANCE*6.3830;
when (DAT_WORK=mdy(9,5,2011)) AMT_BALANCE=AMT_BALANCE*6.3856;
when (DAT_WORK=mdy(10,5,2011)) AMT_BALANCE=AMT_BALANCE*6.3830;
when (DAT_WORK=mdy(11,5,2011)) AMT_BALANCE=AMT_BALANCE*6.3395;
when (DAT_WORK=mdy(5,7,2007)) AMT_BALANCE=AMT_BALANCE*7.6962;
when (DAT_WORK=mdy(6,7,2007)) AMT_BALANCE=AMT_BALANCE*7.6569;
when (DAT_WORK=mdy(7,7,2007)) AMT_BALANCE=AMT_BALANCE*7.6014;
when (DAT_WORK=mdy(8,7,2007)) AMT_BALANCE=AMT_BALANCE*7.5774;
when (DAT_WORK=mdy(9,7,2007)) AMT_BALANCE=AMT_BALANCE*7.5384;
when (DAT_WORK=mdy(10,7,2007)) AMT_BALANCE=AMT_BALANCE*7.5045;
when (DAT_WORK=mdy(11,7,2007)) AMT_BALANCE=AMT_BALANCE*7.4420;
when (DAT_WORK=mdy(12,7,2007)) AMT_BALANCE=AMT_BALANCE*7.4015;
when (DAT_WORK=mdy(1,7,2008)) AMT_BALANCE=AMT_BALANCE*7.2690;
when (DAT_WORK=mdy(2,7,2008)) AMT_BALANCE=AMT_BALANCE*7.1830;
when (DAT_WORK=mdy(3,7,2008)) AMT_BALANCE=AMT_BALANCE*7.1085;
when (DAT_WORK=mdy(4,7,2008)) AMT_BALANCE=AMT_BALANCE*6.9865;
when (DAT_WORK=mdy(5,7,2008)) AMT_BALANCE=AMT_BALANCE*6.9865;
when (DAT_WORK=mdy(6,7,2008)) AMT_BALANCE=AMT_BALANCE*6.9227;
when (DAT_WORK=mdy(7,7,2008)) AMT_BALANCE=AMT_BALANCE*6.8610;
when (DAT_WORK=mdy(8,7,2008)) AMT_BALANCE=AMT_BALANCE*6.8610;
when (DAT_WORK=mdy(9,7,2008)) AMT_BALANCE=AMT_BALANCE*6.8400;
when (DAT_WORK=mdy(10,7,2008)) AMT_BALANCE=AMT_BALANCE*6.8150;
when (DAT_WORK=mdy(11,7,2008)) AMT_BALANCE=AMT_BALANCE*6.8397;
when (DAT_WORK=mdy(12,7,2008)) AMT_BALANCE=AMT_BALANCE*6.8800;
when (DAT_WORK=mdy(1,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8314;
when (DAT_WORK=mdy(2,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8345;
when (DAT_WORK=mdy(3,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8404;
when (DAT_WORK=mdy(4,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8371;
when (DAT_WORK=mdy(5,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8219;
when (DAT_WORK=mdy(6,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8330;
when (DAT_WORK=mdy(7,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8331;
when (DAT_WORK=mdy(8,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8318;
when (DAT_WORK=mdy(9,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8288;
when (DAT_WORK=mdy(10,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8270;
when (DAT_WORK=mdy(11,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8273;
when (DAT_WORK=mdy(12,7,2009)) AMT_BALANCE=AMT_BALANCE*6.8293;
when (DAT_WORK=mdy(1,7,2010)) AMT_BALANCE=AMT_BALANCE*6.8277;
when (DAT_WORK=mdy(2,7,2010)) AMT_BALANCE=AMT_BALANCE*6.8271;
when (DAT_WORK=mdy(3,7,2010)) AMT_BALANCE=AMT_BALANCE*6.8264;
when (DAT_WORK=mdy(4,7,2010)) AMT_BALANCE=AMT_BALANCE*6.8254;
when (DAT_WORK=mdy(5,7,2010)) AMT_BALANCE=AMT_BALANCE*6.8263;
when (DAT_WORK=mdy(6,7,2010)) AMT_BALANCE=AMT_BALANCE*6.8314;
when (DAT_WORK=mdy(7,7,2010)) AMT_BALANCE=AMT_BALANCE*6.7780;
when (DAT_WORK=mdy(8,7,2010)) AMT_BALANCE=AMT_BALANCE*6.7684;
when (DAT_WORK=mdy(9,7,2010)) AMT_BALANCE=AMT_BALANCE*6.7900;
when (DAT_WORK=mdy(10,7,2010)) AMT_BALANCE=AMT_BALANCE*6.6900;
when (DAT_WORK=mdy(11,7,2010)) AMT_BALANCE=AMT_BALANCE*6.6520;
when (DAT_WORK=mdy(12,7,2010)) AMT_BALANCE=AMT_BALANCE*6.6443;
when (DAT_WORK=mdy(1,7,2011)) AMT_BALANCE=AMT_BALANCE*6.6240;
when (DAT_WORK=mdy(2,7,2011)) AMT_BALANCE=AMT_BALANCE*6.5910;
when (DAT_WORK=mdy(3,7,2011)) AMT_BALANCE=AMT_BALANCE*6.5630;
when (DAT_WORK=mdy(4,7,2011)) AMT_BALANCE=AMT_BALANCE*6.5422;
when (DAT_WORK=mdy(5,7,2011)) AMT_BALANCE=AMT_BALANCE*6.4930;
when (DAT_WORK=mdy(6,7,2011)) AMT_BALANCE=AMT_BALANCE*6.4790;
when (DAT_WORK=mdy(7,7,2011)) AMT_BALANCE=AMT_BALANCE*6.4650;
when (DAT_WORK=mdy(8,7,2011)) AMT_BALANCE=AMT_BALANCE*6.4390;
when (DAT_WORK=mdy(9,7,2011)) AMT_BALANCE=AMT_BALANCE*6.3935;
when (DAT_WORK=mdy(10,7,2011)) AMT_BALANCE=AMT_BALANCE*6.3830;
when (DAT_WORK=mdy(11,7,2011)) AMT_BALANCE=AMT_BALANCE*6.3481;
……(后面还有一大段,略去。。)……
otherwise AMT_BALANCE=AMT_BALANCE*6.5000;
end;
end;
%mend exchange;
宏比较巨大,结果看日志的时候,每当调用%exchange宏,日志就被刷屏,不方便看运行日志。
请问有什么办法屏蔽此宏在日志中的显示么?
或者将%exchange分离出去,宏写到另一个SAS文件做外部调用?