SAS宏入门
第10章 SAS宏功能

第10章SAS宏功能10.1 概述SAS系统的MACRO处理器可以让程序更简洁更明了及更容易维护,帮助用户在使用SAS系统时更方便更自动化,具体来说,它具有以下功能:1.获取SAS的系统信息;2.有条件地执行数据步和过程步;3.开发交互式系统;4.在不同的数据步和过程步之间传递数据;5.重复执行SAS代码等等。
.SAS宏语言的管理1.MACRO变量2.MACRO程序语句3.MACRO表达式和函数10.2 SAS宏变量的使用与定义宏变量(有时也称符号变量)属于SAS宏语言的范畴,和数据步中的变量的概念是不一样的。
除了数据行外,你可以在SAS程序的任何地方定义和使用宏变量。
数据步变量是和数据集相联系的,而宏变量是独立于数据集的。
数据集变量的值取决于正在处理的观测,而一个宏变量的值总是不变,直到被明确改变。
宏变量类似于一般变量的命名方法。
程序中以&宏名来引用MACRO变量(有时为了清晰起见,也可以通过&宏名. 来引用MACRO变量)SAS宏变量共有两种:1.系统宏变量2.用户自定义的宏变量。
10.2.1 系统宏变量 一些系统宏变量01 /* Program_10-l-l.sas */02 DA TA _NULL_;03 PUT 'SYSDATE=' "&SYSDA TE"; /* 执行时的日期 */04 PUT 'SYSDAY='"&SYSDAY"; /* 执行时是星期几 */05 PUT 'SYSENV='"&SYSENV"; /* 交互模式或批次模式 */06 PUT 'SYSSCP='"&SYSSCP"; /* 返回正在用的操作系统 */07 PUT 'SYSJOBID = '"&SYSJOBID"; /* 程序的操作执行代码 */08 PUT 'SYSERR='"&SYSERR"; /* 程序执行的错误码 */ 09 PUT 'SYSRC='"&SYSRC";/*程序执行的回复码 */ 10 PUT 'SYSLIBRC='"&SYSLIBRC"; /* 使用LIBNAME 时设置是否正确 */11 PUT 'SYSFILRC='"&SYSFILRC"; /*使用FILENAME 时设置是否正确*/12 RUN;使用宏语句 %put _automatic_; 可以查看所有的系统宏变量,结果显示在LOG窗口。
人人都能用sas

华中科技大学同济医学院公共卫生学院
再推广
人人都能用sas
想对分析不同班级(class)体重(weight)差异,你可 以调用方差分析宏程序如下: %glm(shuju,weight,class)
解释:glm宏程序开头为:%macro glm(data,x,class) 这里面定义了“函数”名称:glm,参数:data(数据集)、x(要 分析的变量)和class(分类变量) 其他解释参见上一页
四大基础统计检验sas宏程序及使用方法
By Crazygoing
人人都能用SAS
引 言
人人都能用sas
SAS以其不可思议的强大的统计分析功能 称雄于统计软件世界;同时著名的还有他 那庞大的SAS语言系统,这让很多人望而 生畏。 对于sas入门级或者更低级选手来说,在利 用SAS做统计分析的过程中,经常会遇到 语句遗忘或者错误书写的问题,如果不常 用SAS而且又不想花时间的话,那就是个 令人头疼的问题。
华中科技大学同济医学院公共卫生学院
华中科技大学同济医学院公共卫生学院
华中科技大学同济医学院公共卫生学院
声 明
人人都能用sas
本宏程序为Crazygoing原创 欢迎随意转载使用。 本教程首发在人大经济论坛,欢迎saser们 跟帖补充其他分析方法的宏程序。 本人sas水平有限(不是谦虚),行文表达 如有不妥之处,真诚希望saser指出。 Email:wuyu84@
华中科技大学同济医学院公共卫生学院
再再推广
人人都能用sas
想对分析不同性别(gender)体重(weight)差异,若 weight不是正态分布,你可以调用秩和分析宏程序如下 %npar1way(shuju,gender,class)
MACRO基础

SAS宏语言基础薛 富 波 第四军医大学卫生统计学教研室 E-mail: xuefubo@一,SAS宏工具简介21. SAS宏工具的基本概念和功能扩展定制 SAS操作 减少文本 输入量文本操作工具SAS编程更加 灵活高效32. 两个新的工作对象宏:以%标识 功能较复杂 文本替换功能 宏变量:以&标识 功能较简单43. SAS宏工具的功能结构语法规则宏语言宏处理器工作单元SAS其它 功能模块54. SAS宏标识符(宏触发器)宏变量解析 宏变量引用宏调用 宏操作 宏语句 宏函数65. SAS宏运行机制文本替 换操作 宏触发 器&和%SAS程序词语扫描器不包含任 何宏代码SAS宏工具SAS编译器7二,SAS宏工具主要功能单元81. 宏变量91.1 宏变量的定义及其基本特性%let mv01=height var001; data test; 宏变量 input sex &mv01; 宏变量值 datalines; …… ; run; proc print data=test; var &mv01; run;是由SAS名字标识的字符串. 取值类型及变量长度. 宏变量值的恒定性. 与SAS数据集变量的区别. 宏变量的应用场合.101.2 用户定义宏变量与自动宏变量%let dataset=sashelp.class; %let time=20050727; %put _user_;用户自定义宏变量%put _automatic_; title "Report produced at &sysdate9., &sysday";自动宏变量111.3 局部宏变量与全局宏变量局部宏变量. %macro test; %let localvar=12345; %put _user_; %mend; %test 全局宏变量. %let globalvar=2005; %global sasvar; %put _user_;局部宏变量 局部符号表全局宏变量全局符号表121.4 宏变量的使用%let var=weight; 宏变量引用 %let data=sashelp.class; 字符常量中引 proc print data=&data; 用宏变量,须 var &var; 使用双引号 title "Contents of dataset &data for variable &var"; run; %let i=10; 字符与宏变量 %let j=5; 使用分隔符连接 可直接连接 %let t1=text in line&j; 字符与宏变量. %let t2=text in line&j.page&i.underscored; %let lib=sashelp; 宏变量引用后圆点符号的使用 %let data=&lib..class;131.5 宏变量的间接引用%macro test; 创建一系列宏变 data _null_; 量,lev1, lev2, … set sashelp.class end=last; call symput(("lev"||compress(_n_)),age); if last then call symput("levn",compress(_n_)); 存储上述宏变量 run; 总个数的宏变量 %do i=1 %to &levn; 宏变量间接引用 %put lev&i=&&lev&i; %end; 在各级别的宏变量名称 %mend test; 前添加2的k-1次方个&14宏变量间接引用的工作机制文本字符串 文本替换 宏处理器 &字符扫描&&lev&i&lev114151.6 应用宏函数处理宏变量值%let a=weight/height/sex; %let b=%scan(&a,2,/); %let c=%substr(&a,8,6); %let i=9; %let j=%eval(&i*2+1); %let k=%scan(&a,1,/)is%eval(&i*7-3)kg;宏函数可与字 符混合使用, 也可同时使用 多个函数,且 其前后顺序可 任意排列162 宏的定义与调用172.1 宏的概念与功能宏调用 宏:已编译程序段 特定代码文本可接受宏参数可执行逻辑控制 等各项操作功能182.2 宏的定义与调用以%macro语句为开始 宏 的 定 义%macro mtest(times); %do i=1 %to × %put putting process is performed for &i times; %end; %mend mtest;以%mend语句为结尾宏 调 用%mtest(10)192.3 宏参数位置参数当前宏的局 部宏变量 带默认值的关键字%macro paratest(pos1,pos2,key1=default1,key2=default2); %put the first positional parameter is &pos1; %put the second positional parameter is &pos2; %put the first keyword is &key1; %put the second keyword is &key2; %mend paratest; /*仅有两个位置参数,关键字将取默认值*/ %paratest(para1,para2) /*位置参数变换位置,关键字取给定值*/ %paratest(para2,para1,key1=keyword1,key2=keyword2) /*关键字变换位置,不影响输出结果*/ %paratest(para1,para2,key2=keyword2,key1=keyword1)20。
很全的sas基础知识(一)

很全的sas基础知识(一)5.1SAS表达式简介1.SAS常数表达式(1)数值常数如: 1.23、-5、0.5E-10。
(2)字符常数如: name1='TOME'、name2='MARY'、name3='JOHN'。
(3)日期(d)、时间(t)、日时(dt)常数如: d1='01JAN80'd、t1='9:25:19't、dt1='18JAN80:9:27:05'dt。
(4)16进制常数(略)2.SAS运算符(1)前缀算符与后缀算符前缀算符, 即正号或负号; 如: +Y; -25; -COS(30); +(X*Y); 后缀算符,即两个运算对象之间的运算符号, 如: 1+9; 4-2; 6<8。
(2)只含一个运算符的简单表达式(Ⅰ组)和含有多于一个运算符的复合表达式(Ⅱ组)Ⅰ组, 如: A+B; C-D; E*F; G/H; Ⅱ组, 如: 1-EXP(N/(N-1));100-LOG(N*(N+1));(3)操作运算的顺序求一个复合表达式的值时, 其操作运算的顺序和优先级遵从如下的规则(见表5.1): 表5.1SAS的运算符及其在运算顺序上的优先级━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━优先级组别运算符号等价表示运算符号含义之说明━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━第0 组()括号第 1 组**+-乘方, 正数, 负数^><<>NOT MIN MAX逻辑非, 最小, 最大第 2 组*/乘, 除第 3 组+-加, 减第 4 组‖或||字串连接第 5 组<<=LT LE小于, 小于等于=^=EQ NE等于, 不等于>=>GE GT大于等于, 大于IN等于一列元数中的某一个第 6 组&AND逻辑与第7 组|或|OR逻辑或━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━各组的计算顺序分别为: 第0组由内向外;其他各组均自左至右。
12. SAS宏简介

Slide 29
宏函数
宏功能包括很多宏程序语句和宏函数, 下面列出几个
函数名 %Eval 说明 计算算术和逻辑表达式 整数格式
%put _user_; %put _automatic_; %put _all_; 显示用户定义的宏变量 显示系统提供的自动宏变量 显示所有宏变量
显示指定宏变量的值 %put &宏变量名;
例如
%put &hello; %put &dsn; %put this is my test: &dsn;
%end; %mend;
/*调用宏*/ %test2
Slide 24
2) 条件判断语句
格式: %If 表达式 %THEN 语句1; % ELSE 语句2;
或复合语句 %If 表达式 %THEN %DO; 语句组; %END; % ELSE %DO; 语句组; %END;
Slide 25
例子,根据输入选择性输出
引用: %宏名称(参数1,参数2,….)
说明:每个参数值将赋予宏定义中相应位置的参数。
Slide 16
例如,宏参数的定义与调用
/*定义*/ %macro myprint(dataset,varlist); proc print data=&dataset; var &varlist; run; %mend; /*引用,指定参数*/ %myprint(sashelp.class,name sex) 说明:参数与参数之间以逗号分隔,引用时,第二个 参数varlist的值为:name sex。
The little SAS book 学习笔记第七章

The little SAS book 学习笔记第七章使用SAS宏功能灵活写代码7.1 宏概述宏以前被认为是经验老道的SAS程序员使用的高级技术。
但现在新手也能够了解一些。
幸运的是,宏的基本功能不是那么难理解。
本章介绍的最普遍使用的SAS宏语言的特征。
宏处理器标准SAS程序中,提交程序后,SAS就编译并立即执行。
但宏语句多了一步,在提交之后,SAS会将宏语句传送到宏处理器上,将其转变为SAS标准代码,通常叫做“变换代码”(meta-programming.)宏和宏变量SAS宏代码包括两个基本部分:宏命令和宏变量。
宏变量通常加一个“&”作为前缀,而宏命令通常加一个“%”作为前缀。
局部VS全局宏变量有局部宏变量和全局宏变量。
如果在宏的内部定义则为局部宏变量,只能在内部使用。
如果在开放代码中定义则为全局宏变量。
避免两种错误:在宏之外(开放代码)使用局部变量;创建同名的局部变量和全局变量。
启动宏处理器使用宏指令之前必须将宏系统选项打开,尽管有时默认是打开的。
可以用下面代码查看是否打开:PROC OPTIONS OPTION=MACRO; RUN;查看日志,如果看到MACRO,则打开了;如果看到NOMACRO,则没有打开。
避免宏错误宏会让人很头痛,可以通过分段形式避免。
首先,用SAS标准语言写下程序;接着,将其转变为宏代码。
7.2 用宏变量提交文本用%let创建一个宏变量最简单给宏变量分配一个值的方法是%let,基本形式为:%LET macro-variable-name=value;宏变量名必须符合SAS命名法则,(少于等于32字节、以字母或下划线开头、只能包括字母、数字和下划线),下面创建了宏变量:%LET iterations=10;%LET country=New Zealand;当赋值字符串时,不需要加引号。
除非在开头和结尾有空格,否则从等号到分号的全部内容都是变量值。
使用宏变量宏变量前面要加前缀&,注意宏处理器找不到单引号内的宏变量,只能用双引号。
《SAS软件入门教程》课件

高级统计分析
总结词
高级统计分析是在描述性统计分析和推论性统计分析基础上,运用更为复杂和高级的统 计模型和技术,对数据进行深入分析和挖掘的方法。
SAS软件开始商业化,推出 SAS/ETS、SAS/STAT等模块 。
1990年代
SAS软件开始支持互联网和分 布式计算,推出 SAS/CONNECT、 SAS/INSIGHT等模块。
1960年代
SAS软件由美国北卡罗来纳大 学开发,最初主要用于统计分 析。
1980年代
SAS软件不断扩展,推出 SAS/BASE、SAS/EIS、 SAS/IMAGE等模块。
THANKS
THE FIRST LESSON OF THE SCHOOL YEAR
宏变量和宏程序
了解宏变量的定义和使用方法,掌握宏程序 的编写和调用。
自定义过程
了解自定义过程的概念和语法,掌握如何创 建和使用自定义过程。
宏编程和自定义过程的应用
通过案例演示宏编程和自定义过程在数据处 理和分析中的应用。
01
SAS软件实战案例
案例一:数据探索和可视化
总结词
通过SAS软件进行数据探索和可视化,帮助用户更好地理解数据。
使用动态图表
通过动画效果展示数据随时间的变化,使数据变化更加直观。
使用3D图表
在二维图表的基础上增加高度维度,展示更丰富的数据信息。
01
SAS编程技巧
变量处理和数据转换
变量类型
了解和正确使用不同类型的变量,如数值型、字符型 、日期型等。
第10章SAS宏功能解析

第10章SAS宏功能10.1 概述SAS系统的MACRO处理器可以让程序更简洁更明了及更容易维护,帮助用户在使用SAS系统时更方便更自动化,具体来说,它具有以下功能:1.获取SAS的系统信息;2.有条件地执行数据步和过程步;3.开发交互式系统;4.在不同的数据步和过程步之间传递数据;5.重复执行SAS代码等等。
.SAS宏语言的管理1.MACRO变量2.MACRO程序语句3.MACRO表达式和函数10.2 SAS宏变量的使用与定义宏变量(有时也称符号变量)属于SAS宏语言的范畴,和数据步中的变量的概念是不一样的。
除了数据行外,你可以在SAS程序的任何地方定义和使用宏变量。
数据步变量是和数据集相联系的,而宏变量是独立于数据集的。
数据集变量的值取决于正在处理的观测,而一个宏变量的值总是不变,直到被明确改变。
宏变量类似于一般变量的命名方法。
程序中以&宏名来引用MACRO变量(有时为了清晰起见,也可以通过&宏名. 来引用MACRO变量)SAS宏变量共有两种:1.系统宏变量2.用户自定义的宏变量。
10.2.1 系统宏变量 一些系统宏变量01 /* Program_10-l-l.sas */02 DA TA _NULL_;03 PUT 'SYSDATE=' "&SYSDA TE"; /* 执行时的日期 */04 PUT 'SYSDAY='"&SYSDAY"; /* 执行时是星期几 */05 PUT 'SYSENV='"&SYSENV"; /* 交互模式或批次模式 */06 PUT 'SYSSCP='"&SYSSCP"; /* 返回正在用的操作系统 */07 PUT 'SYSJOBID = '"&SYSJOBID"; /* 程序的操作执行代码 */08 PUT 'SYSERR='"&SYSERR"; /* 程序执行的错误码 */ 09 PUT 'SYSRC='"&SYSRC";/*程序执行的回复码 */ 10 PUT 'SYSLIBRC='"&SYSLIBRC"; /* 使用LIBNAME 时设置是否正确 */11 PUT 'SYSFILRC='"&SYSFILRC"; /*使用FILENAME 时设置是否正确*/12 RUN;使用宏语句 %put _automatic_; 可以查看所有的系统宏变量,结果显示在LOG窗口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAS 看到的语句是:
DATA MEWBOUGHT; SET SAVE.BOUGHT; more SAS statements IF NUM>1000;
RUN;
注意:宏变量引用不需要连接操作符,SAS系统会自动 构造结果字符,这与数据步不一样。
◆
有时我们要在文本中对宏变量定界, 看下面一段语句:
%let mmm=bought;
data &mmm1 &mmm2; set in&mmm.temp; run; ◆ 这时SAS并不会使用BOUGHT1和BOUGHT2两个数据 集,而且给出错误信息。这是因为SAS把MMM1和 MMM2当成了两个合法的宏变量名,而不是引用宏 变量MMM。在这种情况下,我们要使用宏变量引 用定界“.”,上面第二条语句正确的写法应该
表22.2 宏功能中的保留字
ABEND ABORT ACT ACTIVATE BQUOTE BY CLEAR CLOSE CMS COMANDR COPY DEACT DEL DELETE DISPLAY DMIDSPLY DMISPLIT DO EDIT ELSE END EVAL FILE GLOBAL GO GOTO IF INC INCLUDE INDEX INFILE INPUT KEYDEF LENGTH LET LIST LISTM LOCAL MACRO MEND METASYM NRBQUOTE NRQUOTE NRSTR ON OPEN PAUSE PUT QSCAN QSUBST QUOTE QSYSFUNC QUPCASE RESOLVE RETURN RUN SAVE SCAN STOP STR SUBSTR SUPERQ SYSCALL SYSEVALF SYSEXEC SYSFUNC SYSGET SYSRPUT THAN TO TSO UNQUOTE UNSTR UNTIL UPCASE WHILE WINDOW
◆ 用户可以根据需要在SAS程序中多次引用宏变量,宏变
量,宏变量的值保持不变,直到用户改变它,例如:
%let mmm=Newcity;
Data temp;
If num>=800; run; proc print; title “Subset of Data Set &mmm”;
run;
◆ 每次出现宏变量引用&MMM,宏处理器用Newcity
1、3 用户定义的宏变量(6) —— 5、间接引用宏变量
• 原则:宏处理器从左到 • 比较: • %put &city &n • %put &&city &n
表22.1
状 态 只读
按类别划分的自动宏变量(续表)
变 量 内 容
SYSCHARWIDTH 字符串宽度值 SYSDATE 表示当前SAS工作或运行期间日期的字符串(两年数份)
SYSDATE9 表示当前SAS工作或运行期间日期的字符串值(两年数份) SYSDAY SAS 工作或运行期间的星期几 SYSENV 前景或背景荧光屏指示符 SYSERR SAS 过程或数据步设置的返回代码 SYSINDEX 目前工作期间已经执行的宏数 SYSINFO 返回代码信息 SYSJOBID 目前一批工作或用户ID的名称(随主机环境改变) SYSMENV 当前宏运行的环境 SYSPROCESSID 当前SAS操作的ID SYSPROCESSNAME 当前SAS操作的名称 SYSSCP 操作系统的缩写 SYSSCPL 操作系统的名称 STSSITE SYSSTARTID 分配给用户的地点的号码 最后一个STARTSAS语句产生的ID
如:DATA=PERSNL&YR.EMPLOYES,其中&YR包括了两位数的年 份值)或和另一个宏变量引用合并起来(例如&MONTH&YR), 这样可以使用户在几个地方使用相同的文本或反复使用一段 程序,因为我们可以改变每一次的值。例如: %let mmm=bought; data new&mmm; set save. &mmm; more SAS statements if num>1000; run;
SAS 系统看到的程序为:
DATA TEMP; SET DATA1; IF SEX=1; RUN; PROC PRINT; TITLE“SUBSET OF DATA SET DATA1“ RUN; DATA TEMP; SET DATA2; IF SEX=1; RUN; PROC PRINT; TITLE “SUBSET OF DATA SET DATA2“ RUN;
可以使用%PUT_ALL_查看到所有用户创建的宏变量。
1、3 用户定义的宏变量(2) —— 1、创建宏变量及对其赋值
• 最简单方法:使用宏程序语句%LET,其形式为: %LET宏变量名=宏变量值 • 其他:%DO循环语句;
%GLOBAL语句; %INPUT语句; SQL中的SELECT语句的INTO语句; %LOCAL语句; %MACRO语句; SCL中的SYMPUT程序和SYMPUTN程序; %WINDOW语句。
data &mmm.1 &mmm.2;
这时的SAS看到的语句是: DATA BOUGHT1 BOUGHT2; 如果“.”是SAS 的名字的一部分,要使用两个定界符, 如 下面两级数据集名的例子: set in&mmm..Temp; 这时SAS 看到的语句是:
SET INBOUGHT.TEMP;
注意:用户可以在任何宏变量引用后使用定界符,但只 有在起界定作用或“.”是SAS的名字的一部分 时,定 界符才被解析,所以,下面两名语句在 SAS来是等价的:
1、2 SAS系统定义的宏变量
• 除了SYSPBUFF之外,所有的自动宏变量 都是全局变量。 • 要使用自动宏变量,可以在&符号后跟上一 个宏变量名。如: footnote ”Report for & sysday, & sysdate”; • 用户可以给具有读/写状态的自动宏变量赋 值,但不能给只读状态的宏变量赋值。 • 使用% PUT_ AUTOMATIC_,可以看到所有 可以利用的自动宏变量。
title “&MMM.report”;
title “&MMMreport”; 它们都相当于:TITLE “bought”;
1、3 用户定义的宏变量(4) —— 3、显示宏变量的值
• ◆ 显示宏变量的值最简单的方法是使用%PUT语 句,它将在 • SAS的log窗口显示结果,如: • %let x=name; • %let y=weight; • %let z=height; • %put &x *** &y*** &z***; • log 窗口会显示下列文本: • name *** weight*** height***
• 两种定义符:&名字(宏变量标记) %名字(一段宏)
简介:
• 对SAS程序书写的约定:
用户录入的程序用小写字母, SAS系统看到的程序用大写字母, 其中宏变量替代的部分用黑体字表示。
• 注意:有三个以%开头的SAS语句不是宏功能中
的内容,它们是%INDUCE、%LIST、%RUN语 句。
主要内容:
SAS宏入门
SAS宏的作用
• • • • • 获取SAS系统信息 有条件执行数据步和过程步 开发交互式系统 产生与数据无关的SAS程序 在不同的SAS数据步和过程步之间传递数 据 • 重复执行SAS程序
简介:
• 定义:可以按照用户的需要对SAS系统进行扩充和定 义,以减轻在完成一些相同的统计分析任务时的文本 录入量。 • 宏功能包括: 宏处理器 宏语言
替代
它,所以SAS看到的语句是:
DATA TEMP;
SET NEWCITY;
IF NUM >=800; RUN; PROC PRINT; TITLE “Subset of Data Set Newcity”;
RUN;
注意:如果引用了有存在的宏变量,在SAS的log窗口会显 示警告信息。
◆ 有时需要将宏变量引用和前导文本或末尾文本合并起来(例
1、3 用户定义的宏变量(1)
• 定义宏变量方法:
• 宏变量名必须以字母和下划线开始,后面跟字母 或数字。 • 可以给任意宏变量命名,只要这个名称不是保留 字(见表22、2)。 • 建议不要使用AF、DMS、SQL、SYS等前缀,因 为SAS软件常常把他们用在自动宏变量中。 • 可以使用%PUT_ ALL_查看到所有用户创建的宏 变量。
表22.1 状态 变 量
SYSCC YSCMD SYSDEVIC SYSDMG SYSDSN SYSFILRC SYSLAST SYSLCKRC SYSLIBRC SYSMSG SYSPARM SYSPUBFF SYSRC
按类别划分的自动宏变量 内 容
读/写 SYSBUFFER
来自于%INPUT的不匹配的文本 SAS对用户的操作环境返回的当前状态代码 来自于宏窗口命令行的最后一个不可识别的命令 当前图形设备的名字 反映对一个损坏的数据集采取的措施的返回代码 最近使用的SAS数据集的两级名称 FILENAME 语句设置的返回代码 最近使用的SAS数据集的名称 LOCK语句设置的返回代码 LIBNAME语句设置的返回代码 宏窗口显示的信息 SYSPARM=系统选择项设定的值 宏参数值的文本 各种与系统有关的返回代码
• • • • 1、宏变量 2、宏 3、宏应用实例 4、如何提高宏的运行效率
一、宏变量
1、1
简介:
• 宏变量:SAS程序中通过替代符号动态地更改文本的工
具;只包含字符型数据。 具体长度是由赋值给它的文本决定的。 值的最大长度为:32K字符
• 分类:用户定义的宏变量
自动宏变量
全局宏变量 局部宏变量