设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1417|回复: 0

SAS定义宏变量三种方法

[复制链接]

20

主题

159

金钱

262

积分

入门用户

发表于 2019-7-29 13:16:27 | 显示全部楼层 |阅读模式
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;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表