Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R optim()多个参数类型_R_Optimization - Fatal编程技术网

R optim()多个参数类型

R optim()多个参数类型,r,optimization,R,Optimization,我正在探索使用R optim()或optimx()进行(非常)非线性优化。基本上,我编写了一个函数,将以下内容作为其输入: 1) 具有特定列名/类型的data.frame 2) 长度为1的数字向量 3) 长度大于1的数值向量 然后,该函数接受输入,执行一些计算和逻辑测试,如果逻辑测试为假,则返回一个非常负值,如果逻辑测试为真,则返回输入值#2。目标是最大化#2,而不会使逻辑测试出错 我尝试使用优化代码()用下面的代码(PAR值对应于上面提到的输入): optimout如果我正确理解了您的问题,并

我正在探索使用R optim()或optimx()进行(非常)非线性优化。基本上,我编写了一个函数,将以下内容作为其输入:

1) 具有特定列名/类型的data.frame
2) 长度为1的数字向量
3) 长度大于1的数值向量

然后,该函数接受输入,执行一些计算和逻辑测试,如果逻辑测试为假,则返回一个非常负值,如果逻辑测试为真,则返回输入值#2。目标是最大化#2,而不会使逻辑测试出错

我尝试使用优化代码()用下面的代码(PAR值对应于上面提到的输入):


optimout如果我正确理解了您的问题,并且您只想最大化基于第二个输入参数(长度为1的数字向量)的函数,那么您需要以不同的方式调用
optimx
,考虑到data.frame可能是某些给定的输入数据,这是有意义的

因此,请尝试执行以下操作:

optimout <- optimx(par = c(5000), fn = MyFunction, par1=inputDF,
par2=rep(99,20), maximize = TRUE)

optimout尝试在初始条件
c(inputDF,5000,rep(99,20))下计算
MyFunction
。你得到了什么?它返回我期望的值。但是,我在函数调用中显式输入参数inputDF,5000,rep(99,20)。我想知道在通过optimx调用MyFunction时,是否需要以不同的格式设置输入参数。您的
MyFunction
是否有3个或1个输入?3个输入,与我在上面的#1/2/3中所列的数据类型相同,通过
optimx
:fn=要最小化(或最大化)的函数,第一个参数是要进行最小化的参数向量。
optimout <- optimx(par = c(5000), fn = MyFunction, par1=inputDF,
par2=rep(99,20), maximize = TRUE)