全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2275 2
2018-08-11
我们知道可以在SAS/IML中submit和endsubmit来调用过程步,但如果把这个过程置于宏中,就不能运行了,例如:%macro ss(m);
proc iml;
x=normal(j(&m,1,0));
create a from x [colname={x}];
append from x;
close a;
submit;
data b;
set a;
lx=lag(x);
proc print data=b;
run;
endsubmit;
%mend ss;
%ss(100);
quit;
会显示ERROR 180-322: Statement is not valid or it is used out of proper order.
但如果在宏中不使用参数,例如上述的宏变量m,直接赋值为100,即x=normal(j(100,1,0));则此时可以得到结果,虽然仍然显示上述报错内容。
请问高手,有什么解决办法吗?


二维码

扫码加我 拉你入群

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

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

全部回复
2018-8-11 13:47:58
不能将 Submit 块直接置于宏中。请先将 Submit 块置于文件中,然后在宏定义中使用 %include 引用该文件。
二维码

扫码加我 拉你入群

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

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

2018-8-11 15:09:49
感谢您的回复,是否有什么资料推荐看一下!谢谢!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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