我有一个数据框和一个成本函数,我想在给定数据框中的每一行的情况下对其进行优化。

简化示例:

funct <- function(x,row,y)
{
  r <- row**2 - (x*y)**3
  return(sum(r))

}
apply(dataFr,1,optimize,f=funct,interval=c(0,250),y=4)

funct 是成本函数,x 是我想要优化的变量,row 是一个参数,表示数据帧 dataFr 中的一行

当我运行上面的代码时出现错误
Error in f(arg, ...) : unused argument (c(4, 8, 23))

给定 dataFr 中的每一行,我想要得到的是优化成本的 x 列表

dataFr 可以是
  X1 X2 X3
1  4  8 23
2  2  4 12
3  3  5 65

最佳答案

这将起作用:

apply(dataFr,1,function(r) optimize(f=funct,interval=c(0,250),row=r,y=4))

问题是,正如我在评论中提到的,该行未被使用并分配给函数函数的参数行

通过使用匿名函数,命名当前行并将其分配给它工作的函数的行参数

关于r - 在数据框或矩阵上应用()优化()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25242223/

10-12 07:03