楼主: B.N.F
2224 3

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

  • 1关注
  • 0粉丝

已卖:3份资源

博士生

54%

还不是VIP/贵宾

-

威望
0
论坛币
2118 个
通用积分
246.8145
学术水平
15 点
热心指数
15 点
信用等级
15 点
经验
4680 点
帖子
207
精华
0
在线时间
204 小时
注册时间
2012-8-19
最后登录
2025-1-29

楼主
B.N.F 发表于 2014-8-4 19:42:55 |AI写论文
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
拉您进交流群
GMT+8, 2026-1-3 11:47