我有一个数据框和一个成本函数,我希望在数据框中的每一行给出优化。
简化示例:
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
答案 0 :(得分:1)
这将有效:
apply(dataFr,1,function(r) optimize(f=funct,interval=c(0,250),row=r,y=4))
问题是,正如我在评论中提到的那样,没有使用行并将其分配给函数功能的参数行
通过使用anonmous函数,命名当前行并将其分配给它工作的函数的row参数