SAS定义宏变量三种方法

SAS 中定义宏变量方法主要有以下三种:
   一、%LET定义
       这是最常用的方法。语法过程为:%let 宏变量名=值;调用宏变量:&宏变量名
       Tips:

       1、以逗号作为宏变量定义的结束。

       2、在定义时候不要加引号,系统会把引号当作宏变量的值之一。

       3、宏变量的作用域分为全局与局部。

           一种在程序(这里一般是指一个宏程序)外定义,则在整个SAS任何地方都可以被调用。

           另外一种则是在程序内部,则作用在该程序出现宏变量后面,在程序外则不可以被调用,否则

           会出错。(如果一个程序内部定义有宏变量变成全局变量,则需要使用%global)

       4、当宏变量一个表达式,使用:%str()

                    %let print=%str(proc print; run;);

       5、如果宏变量是数值计算表达式,则需要根据数值类型使用二个不同的宏变量:

                          %eval_r()   用于计算整数例如:%eval_r(1+2)

                         %sysevalf() 用于计算浮点数或者空值例如: %eval_r(1.0+2.3)

     二、data步中定义 call symput()
         这个方法只允许在data步中,这个一定需要注意
         语法过程:call symput("宏变量名",值);
               在DATA过程中,宏变量可以包括常值、变量值。或者函数赋予宏变量。
         三、 SQL过程中定义
              在使用SQL过程中定义宏变量,语法过程为:
             SELECT 宏值
              INTO :宏变量名
              SEPARATED BY ‘分隔符号’
            使用一个案例过程说明,以后我们再详细介绍其中的一个技巧:

data test;
input var @@;
datalines;
1 2 3 4 5
;
run;
proc sql noprint ;
select var into :macro_var
separated by ' '
from test;
quit;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值