本站分享:大数据、数据分析师考试认证培训,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训广告位

SAS宏技术中,%let和call symput有什么区别?_call symput的用法

sas培训 cdadata 1425℃

SAS宏技术中,%let和call symput有什么区别?

sas call symputsas symputcall 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有什么区别?_call symput的用法

喜欢 (1)or分享 (0)