全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4909 2
2011-03-28
是用call execute语句在data步中调用宏,call execute()语句括号里面的参数一直写不对。
问题一:
跟crackman读sas(5)里面有一个例子:
data _null_;
    do i=1 to 3;
         call execute(cats('%inner(0,1,',put(i,best.),')'));    %* %inner(0,1,i);*/
    end;
run;


请问call execute(cats('%inner(0,1,',put(i,best.),')'));这句话中的',put(i,best.),',也即宏%inner()的第三个参数,为什么要加两个逗号?也即把',put(i,best.),'改成这样子'put(i,best.)'为什么就不行了?


问题二:
现在有一宏,%cov(name),name是形参。
想在data步中调用该宏,已经赋值好宏变量n1。
请问该如何调用?
我尝试了如下的方式是不行的:
call execute('%cov('||n1||')');
call execute('%cov('n1')');
call execute('%cov('put(n1,best.)')');
call execute('%cov(',put(n1,best.),')');


还请各位大侠指导!


















1.

二维码

扫码加我 拉你入群

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

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

全部回复
2011-3-28 10:10:19
问题一:
call execute(cats('%inner(0,1,',put(i,best.),')'));
call execute的参数是cats('%inner(0,1,',put(i,best.),')')生成的字符
而cats函数合并的是三个字符串
(1)'%inner(0,1,'  
(2)put(i,best)
(3)')'
三个参数中间用“,”隔开

问题二:
试试 call execute('%cov('||&n1||')');
或 call execute(cats('%cov(' ,&n1,')'))
二维码

扫码加我 拉你入群

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

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

2011-3-28 12:17:17
2# horace_chen 非常感谢!!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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