SAS宏技术中,%let和call symput有什么区别?
平時經(jīng)常使用的宏變量定義方法有三種:
1. %let xxx=yyy;?
2. Call Symput('xxx','yyy');
3. select xxx into: yyy.
三種定義方式最大的區(qū)別是在MACRO函數(shù)內(nèi)定義所生成的宏變量的類型不同:
Call Symput在宏函數(shù)中定義的宏變量可以在函數(shù)外調(diào)用;而%let和 Select into則不能,因為這2種方法在MACRO函數(shù)內(nèi)生成的是局部宏變量,若要想在MACRO函數(shù)外調(diào)用,需事先用%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;
總結(jié)
以上是生活随笔為你收集整理的SAS宏技术中,%let和call symput有什么区别?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAS宏保存以便快速调用的三种解决方案(
- 下一篇: sas infile和filename