全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2188 3
2014-08-04
悬赏 500 个论坛币 未解决
想用fcmp编一段程序,内嵌套一个宏变量,而这个宏变量,可以根据Proc内的数组元素进行赋值和引用。

Proc fcmp;
array fun(5) (1,2,3,4,5);
do i=1 to 5;
%let mfun=fun(i);
rec=&mfun.+rec;
end;
run;

上面的好像不对,请各位大大看流程,不要看代码。
谢谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2014-8-5 00:47:55
这样吗?
Proc fcmp;
array fun(5) (1,2,3,4,5);
do i=1 to 5;
%let mfun=fun(i);
rec= %sysevalf(&mfun.+rec);
end;
run;

ps:proc fcmp里面可以赋宏变量吗?好像这些提交的都是编译好的语句吧
二维码

扫码加我 拉你入群

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

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

2014-8-5 09:23:31
在proc fcmp里,不是用function定义函数(只能显示return一个值),或者用subroutine定义子过程(可以得到或修改多个值),你这里用了这个过程,但是没有任何可以复用的东西,所以没必要啊

另外在proc fcmp里,就不要用宏变量了。在SAS的Proc fcmp里,可以用array就用array吧,也没其他更好的数据结构了。

你这里的代码,看起来一个data步就完了(用个sum函数?);如果非要用fcmp,可以把mfun改成function子句定义一个新的函数,然后在后续的data步里调用。

我技艺不精,只写过几个自定义函数,所以说得可能不对,谨供参考。
二维码

扫码加我 拉你入群

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

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

2014-8-9 15:47:54
playmore 发表于 2014-8-5 09:23
在proc fcmp里,不是用function定义函数(只能显示return一个值),或者用subroutine定义子过程(可以得到或 ...
就是想用fcmp编一段程序,内嵌套一个宏变量,而这个宏变量,可以根据Proc内的数组元素进行赋值和引用。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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