将额外的参数传递给R中的函数

时间:2013-04-17 14:38:43

标签: r

我是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不是由调用函数传递而不是调用函数的本地函数,我需要以某种方式传递它。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

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

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