楼主: B.N.F
1995 3

[有偿编程] 一个过程步中宏变量变换赋值调用 [推广有奖]

  • 1关注
  • 0粉丝

博士生

54%

还不是VIP/贵宾

-

威望
0
论坛币
2124 个
通用积分
247.2645
学术水平
15 点
热心指数
15 点
信用等级
15 点
经验
4683 点
帖子
208
精华
0
在线时间
203 小时
注册时间
2012-8-19
最后登录
2024-3-3

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;

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

关键词:array FCMP Fun FCM ROC 程序 元素
沙发
sas9.4 发表于 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里面可以赋宏变量吗?好像这些提交的都是编译好的语句吧
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

藤椅
playmore 发表于 2014-8-5 09:23:31 |只看作者 |坛友微信交流群
在proc fcmp里,不是用function定义函数(只能显示return一个值),或者用subroutine定义子过程(可以得到或修改多个值),你这里用了这个过程,但是没有任何可以复用的东西,所以没必要啊

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

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

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

使用道具

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

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 18:55