SAS宏技术中,%let和call symput有什么区别?
生活随笔
收集整理的這篇文章主要介紹了
SAS宏技术中,%let和call symput有什么区别?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
平時經常使用的宏變量定義方法有三種:
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有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAS宏保存以便快速调用的三种解决方案(
- 下一篇: sas infile和filename