全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
12987 3
2016-11-18
请教:
1、SAS中,定义宏时%Macro 宏名称(宏参数),请问定义宏参数有什么用?
发现书上有的程序定义了宏参数,有的没有。
%Macro printClass(class);
                           proc print data=&class;
                           run;
%mend printclass;
我理解上面这段程序是定义一个宏;书上说“被定义在一个%Macro语句括号内的宏变量称为宏参数,当调用这个宏时,只要给出这些参数的值即可。”
%printclass(sashelp.class)这个是调用宏的命令,括号内的不是宏参数的名称吗?那“参数值”到底是什么?
2、而且,在创建宏参数时,可以指定这些参数为缺省值,请问指定缺省值有什么用?与上文中直接指定宏参数的名称有什么区别?
3、麻烦帮我解释一下如下程序:
data score;
       input math phy Eng;
       cards;
       87 67 87
       78 96 84
       95 69 65
       ;
       run;
%macro data;
data temp;
set score;
run;
%mend data;
%macro plot;
       proc plot;
           plot &math*&phy;
run;
%mend plot;
%macro link(math, phy);
           %data
           %plot
%mend link;
请问红色标注部分,宏参数不应该是一个数据集吗?为什么还能是数据集中的一个变量,目前完全被宏参数给弄晕了,麻烦帮我详细解释一下宏参数的问题。
4、最后一个问题:请问宏参数中的关键字参数和位置参数在使用上有什么区别?

SAS刚入门,菜鸟在此向给位大神跪求详解,谢谢呢,感激不尽!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-11-18 21:22:13
宏参数可以是数据集,也可以是变量名,也可以是一串字符串。其实储存的时候是以字符串的形式储存的。
宏参数是用于方便以后你要更改程序,举个例子,你的宏参数是2000,计算的是2000年的总收入,下次你想算2001年的了,那么只需要在调用的函数上更改宏参数即可。
建议你看下基础的SAS入门书。如《The SAS little book》
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-11-18 21:47:15
宏参 通俗的讲就是 文本 ,既不是数值型也不是字符型
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-5-17 17:12:27
我倒是对
proc plot;
plot &math*&phy;
这里不懂
为啥可以直接用proc 加plot 这是画图了么
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群