sas macro宏变量引用

SAS宏变量都放在sashelp.vmacro中,打开后可以看到这些变量的范围(scope)和值。自动生成的宏变量和自定义的宏变量都可以用&来引用。

下面用几个例子来说明如何引用宏变量:

1 直接引用:

程序:

%let dsn=Newdata; title1 "Contents of Data Set &dsn";

结果:

TITLE1 "Contents of Data Set Newdata";

2 与非宏变量字符结合

2.1 如果非宏变量字符在前,宏变量在后,则直接引用:

程序:

%let name=sales;

data new&name;

set save.&name;

run;

结果:

DATA NEWSALES;

SET SAVE.SALES;

RUN;

2.2 如果非宏变量字符在后,宏变量在前,则引用后一定要加“.” :

程序:

data &name1 &name2;(未加“.”,应为data &name.1 &name.2;)

set in&name.temp;(加“.”)

run;

结果:

DATA &NAME1 &NAME2;(引用错误)

SET INSALESTEMP;(引用正确)

RUN;

3 当进行层级引用,例如库名.表名时,库名为宏变量时,一定要在后面加两个“.”

程序:

set in&name..temp;(如果只有一个“.”,则结果参照2.2)

set &name..&temp;

结果:

SET INSALES.TEMP;

SET SALES.TEMP;

4 多级引用(非直接引用),例如&city&n的结果是city6,其结果也是一个宏变量,这里要得到这个宏变量的值,需要在前面再加一个&,因此在原表示式前也要加一个&。

程序:

%put &city&n;

%put &&city&n;

如果前面再多加N个&,根据SAS的编译原理,其效果与只加一个&一样。

即&&&city&n 与&&city&n一致。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值