SAS宏中%if%else和if else的区别

SAS宏中%if%else和if else的区别

data a;
	set x;
	%do m=1 %to 3;
		%do q=1 %to 5;
			if x&q^="nan" and &m=id and x&q="&&id&m&q"  then do;
				&&id&m&q=1;
				put '有值 且id相等' id= x&q= &&id&m&q=;
				end;

x数据集
上面代码是正常的if else语句,它可以把变量转变成数值,就是说x&q可以代表x1-x5,但是if语句是把变量解读成值,即id=1时x1=‘张三’,字符串张三。
if结果展示
可以了看到x&q^=“nan”,没有x变量等于nan的。说明if语句把变量解读成了值。
接下来看%if代码。

%do m=1 %to 3;
	%do q=1 %to 5;

		%if x&q=nan   %then %do;
			&
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值