我有一个dataframe和一个成本函数,我想优化数据帧中的每一行。
简化示例:
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是我要优化的变量,行是表示数据帧dataFr中一行的参数。
当我运行上面的代码时,我会得到一个错误
Error in f(arg, ...) : unused argument (c(4, 8, 23))我想要的是一个x的列表,它可以优化成本,给定dataFr中的每一行
dataFr可以是
X1 X2 X3
1 4 8 23
2 2 4 12
3 3 5 65发布于 2014-08-11 12:13:05
这将起作用:
apply(dataFr,1,function(r) optimize(f=funct,interval=c(0,250),row=r,y=4))问题是,正如我在注释中提到的,没有使用行并将该行分配给funct函数的参数行。
通过使用anonmous函数,命名当前行并将其赋值给该函数的行参数。
https://stackoverflow.com/questions/25242223
复制相似问题