入职时间长了,自己写code的能力还是弱弱弱。除了在网上到处借(抄)鉴(抄)。有以下两个感想:
一.如果代码不具有很好地共享性,那就是辣鸡。。。。。
二.如果你觉得代码没有很好的共享性,那么就是自己菜。。。。
最近的任务很多度需要对某一个东西按不同分组进行相同操作,为了美观可读性等等(因为懒)。所以宏就是宝贝了。
而关于宏,sas log并不会像data step 过程给你提供编译的细节,以及报错。宏是个高傲的家伙,很多时候,它不开心(错了:语法,逻辑等),它不会主动和你讲,让你猜猜。如果你不主动点,那么你的结果就是打工仔(error error error等log issue)。
所以,对于宏过程的调试,就很重要。(唔该广大同学仔,抢光了我回家的票,让我困于宿舍,学习。。。。。。。。。)。
下面是宏调试的san个比较常用,而且实用的·options.
***********************SAS Macro learning******************;
*********One:Debugging ***symbolgen****mlogic***mprint*****mfile*****;
*********symbolgen********;
option symbolgen;
%MACRO test(prt = dog , type = fat fuzzy,row = 2 , col = 2);
%do i = 1 %to &row;
%do j =1 %to &col;
%let allpets = %scan(&type,&i) %scan(&prt,&j);
%put &allpets;
%end;
%end;
%mend test;
%test;
symbolgen就是宏编译过程的保姆,给你解析宏变量以及宏变量的具体取值;
LOG:
MLOGIC(TEST): 准备开始执行。
MLOGIC(TEST)