SAS宏技术中,%let和call symput有什么区别?
2017-05-17 10:44
295 查看
平时经常使用的宏变量定义方法有三种:
1. %let xxx=yyy;
2. Call Symput('xxx','yyy');
3. select xxx into: yyy.
三种定义方式最大的区别是在MACRO函数内定义所生成的宏变量的类型不同:
Call Symput在宏函数中定义的宏变量可以在函数外调用;而%let和 Select into则不能,因为这2种方法在MACRO函数内生成的是局部宏变量,若要想在MACRO函数外调用,需事先用%global申明变量类型。
%macro test();
data _NULL_;
call symput('Today',put(today(),date9.));
run;
Method 2
%let today=%sysfunc(today(),date9.);
Method 3
data todaydate;
date=today();
Proc sql noprint;
select put(date,date9.) INTO: today
from todaydate
;
quit;
%put &today;
%mend;
%test;
%put &today;
1. %let xxx=yyy;
2. Call Symput('xxx','yyy');
3. select xxx into: yyy.
三种定义方式最大的区别是在MACRO函数内定义所生成的宏变量的类型不同:
Call Symput在宏函数中定义的宏变量可以在函数外调用;而%let和 Select into则不能,因为这2种方法在MACRO函数内生成的是局部宏变量,若要想在MACRO函数外调用,需事先用%global申明变量类型。
%macro test();
data _NULL_;
call symput('Today',put(today(),date9.));
run;
Method 2
%let today=%sysfunc(today(),date9.);
Method 3
data todaydate;
date=today();
Proc sql noprint;
select put(date,date9.) INTO: today
from todaydate
;
quit;
%put &today;
%mend;
%test;
%put &today;
相关文章推荐
- SAS宏技术中,%let和call symput有什么区别?
- [59] 测试技术常见的十一种问题之七:配置和兼容性测试的区别是什么?
- xml有哪些解析技术?区别是什么?
- XML包括哪些解释技术,区别是什么?
- xml有哪些解析技术?区别是什么?
- SAS宏技术中,%let和call sym…
- ARM、DSP、FPGA的技术特点和区别是什么
- app瘦身和包压缩技术有什么区别?
- @resource和@autowired的区别是什么-CSDN论坛-CSDN.NET-中国最大的IT技术社区 - Google Chrome
- xml有哪些解析技术?区别是什么?
- 服务端技术进阶(六)Ant和Maven的作用是什么?两者之间功能、特点有哪些区别?
- 互联网的WEB2.0和WEB1.0技术各有什么区别?
- 关于Microsoft Unified Communications Managed API 3.0开发的相关技术问题(RealTimeEndpoint, SipEndpoint, SipPeerToPeerEndpoint之间的区别是什么?)
- xml有哪些解析技术?区别是什么?
- 屌丝程序员和技术大拿的区别是什么?
- ARM、DSP、FPGA的技术特点和区别是什么?
- ARM、DSP、FPGA的技术特点和区别是什么
- cis和ccd有什么技术区别啊
- 什么是NFC技术?NFC和RFID、红外、蓝牙有什么区别?
- app瘦身和包压缩技术有什么区别?