我是R.的新手。我正在使用“genalg”包用于遗传算法相关的功能。在这个包中有一个名为“rgba”的函数。当我调用这个函数(rbga)时,我需要传递另一个函数的引用(让A)(用户编写的求值函数)作为参数,它(A)将被“rbga”函数调用,但我想访问一些值在“A”中,“rbga”函数未传递给“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不是由调用函数传递而不是调用函数的本地函数,我需要以某种方式传递它。我怎么能这样做?
答案 0 :(得分:1)
从文档中可以看出,两种类型的用户定义函数都有明确定义的界面。 evalFunc
获取染色体的矢量,monitorFunc
获取包传递给此函数的内部对象,用户可以从中获取内容,例如绘图。
在其当前实现中,无法向这些函数添加自定义用户定义的参数。要使其工作,需要对包代码进行一些调整。