我有一个数据框和一个成本函数,我想在给定数据框中的每一行的情况下对其进行优化。
简化示例:
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/