全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1350 1
2011-11-28
程序运行中需调用一个汇率换算宏,比较巨大:

%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文件做外部调用?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-11-28 09:50:30
谢谢楼主分享啊。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群