全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4730 10
2012-05-16
我要计算一个proc means,然后有条件是if type=XX;
那么这个宏程序要怎么写呢?要用到哪个宏程序呢?type前面要用什么?
%macro xx;
%if type=xx %then %do;
proc means;
run;
%end;

二维码

扫码加我 拉你入群

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

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

全部回复
2012-5-16 11:42:04
然后这个type也是在数据集A里面的,下面的proc mean也是对data A进行的
二维码

扫码加我 拉你入群

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

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

2012-5-16 11:52:50
%macro proc_means(dsn,filter,var);
   proc means data=&dsn (where=(type="&filter"));
    var=&var;
   run;
%mend proc_means;

%proc_means(a,xx,var1);
二维码

扫码加我 拉你入群

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

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

2012-5-16 11:58:47
webgu 发表于 2012-5-16 11:52
%macro proc_means(dsn,filter,var);
   proc means data=&dsn (where=(type="&filter"));
    var=&var; ...
主要我的type不是一个值,是一个函数呢,就是我要选择type=index(brand,"A"),这样的话,filter就不能是函数了吧??
二维码

扫码加我 拉你入群

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

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

2012-5-16 12:51:08
不是不可以。用%index就即可。但是否必要?是否合适?
type的值的集合是什么 ?index(brand,"A")的值的集合又是什么 ?且每次调用宏时,index(brand,"A")的值应该是唯一的。但是你的brand也是变量吧?
二维码

扫码加我 拉你入群

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

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

2012-5-16 14:33:11
webgu 发表于 2012-5-16 12:51
不是不可以。用%index就即可。但是否必要?是否合适?
type的值的集合是什么 ?index(brand,"A")的值的集合 ...
对的,brand也是一个变量,比如有student A,那我我要从brand里面选择A出来作为type,如果brand包含A,那么就对对应的那条记录做一个proc means,求score的均值。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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