-1

我是 R 的新手。我正在使用包“genalg”来处理与遗传算法相关的功能。在这个包中有一个名为“rgba”的函数。当我调用这个函数(rbga)时,我需要传递另一个函数(let A)(用户编写的评估函数)的引用作为参数,它(A)将被“rbga”函数调用,但我想访问一些值在“rbga”函数未传递给“A”的“A”中。我可以为此目的使用环境变量,但还有其他方法可以做到这一点吗?

编辑:

evaluate<-function(x,y,z) # x,y,z arguments passed by rbga 
{ 
 q=p # p is neither x,y,z nor local to this function.
}

result<- rbga(..,evalFunc=evaluate,..) # calls the function evaluate.

在“评估”函数中,我想使用 p。由于 p 不是由调用函数传递的,也不是被调用函数的本地函数,所以我需要以某种方式传递它。我怎样才能做到这一点?

4

1 回答 1

1

从文档看来,两种类型的用户定义函数都有一个明确定义的接口。evalFunc获取染色体向量,以及monitorFunc包传递给此函数的内部对象,用户可以从中获取内容,例如绘图。

在其当前实现中,无法向这些函数添加自定义的用户定义参数。让它工作需要对包代码进行一些调整。

于 2013-04-17T14:55:23.320 回答