SAS函数封装代码巧用

data _null_;
do x=1 to 10;
	do y=1 to 10;
		do z=1 to 10;
			if (x*y*z=125) then goto exit;
		end;
	end;
end;
return;
exit:
	put x= y= z= "xyz=125";
run;
/*link实现伪函数封装功能*/
data test;
x=1;y=2;
link func_add;
output;
put x= y= z=;
return;
func_add:
z=x+y;
return;
run;
proc print data=test;
run;
data test;
input x y;
link func_add;
output;
put x= y= z=;
return;
func_add:
z=x+y;
return;
cards;
1 2
3 4
;
run;
proc print data=test(keep=z);
run;
/*计算逻辑封装为SAS宏*/
%macro func_add(arg1,arg2,arg3);
	&arg3=&arg1+&arg2;
%mend;
data mydata;
input x y;
%func_add(x,y,z);
cards;
 1 2
 3 4
 ;
 run;
 proc print data=mydata;
 run;
 /*FCMP函数封装*/
 proc fcmp outlib=work.funcs.math;
 	function add(arg1,arg2);
		ret=arg1+arg2;
		return(ret);
		endsub;
	function multiply(arg1,arg2);
		ret=arg1*arg2;
		return(ret);
	    endsub;
r
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值