SAS DM数据准备读书笔记3(宏的几个注意点)

SAS MACRO的几个注意点:

 

(1)&,&&的阅读。

掌握一个规律,从右往左读。

比如:

%let x1=roki;

%let x2=man;

 

请问以下程序的输出结果:

%do i=1 %to 2;

%put &&x&i;

%end;

 

以上程序时考察&&x&i的读法。首先,从左往右读,第一遍翻译  &i =1 ,两个&&=&,因此第一遍结果为&x1, 第二遍翻译&x1的值为 roki,所以输出的结果是roki,因此输出的结果为:

 

roki

man

 

(2)SAS MACRO里面的赋值

平常在data step里面,只要使用 y=x1+x2;就可了,但是在MACRO里面要使用:

%let y=&x1;

如果有涉及到运算符号的,则要使用%eval或者%evalf(浮点运算)

%let y=%evalf(&x1+&x2);

 

(3)将DATA STEP里面的值赋给宏变量

 

DATA _NULL_;
SET DUMP;
IF X=. THEN CALL SYMPUT('LastMiss',_N_);
run;


以上程序将最后一个x的缺失值的记录数赋给LastMiss这个变量。

请思考,为什么是最后一个缺失值。如果这个问题没有弄明白,就说明对SAS BASE的最基本的PDV的原理没有掌握。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值