我是新手,对于R表达式处理并不熟悉。我遇到了以下问题,希望得到任何帮助。
我正尝试生成两个单独的方程,并将它们合并为一个表达式,并将其传递给算法以找到最优值。
我能够生成以下两个方程式:
我的目标函数会是这样的。
我正尝试生成两个单独的方程,并将它们合并为一个表达式,并将其传递给算法以找到最优值。
OLD_PRICE ELAST Units
1 59.98 1.3 151
2 59.98 1.3 230
代码:
for(i in 1:nrow(df)){
o[i] = df$OLD_PRICE[i]
el[i] = df$ELAST[i]
u[i] = df$Units[i]
assign(paste0("l",i),(substitute((x)*(1-(x-o)*el/o)*u, list(o=o[i],el=el[i],u=u[i]))))
}
我能够生成以下两个方程式:
l1 = (x) * (1 - (x - 59.98) * 1.3/59.98) * 151
l2 = (x) * (1 - (x - 59.98) * 1.3/59.98) * 230
我的目标函数会是这样的。
eval_obj_f <- function(x){eval(l1)+eval(l2)}
我正在尝试动态地解决这个问题。比如,如果我有一个不同的4个观测值的数据集,我该如何动态生成以下目标函数?
eval(l1)+eval(l2)+eval(l3)+eval(l4)
l1
和l2
的表达式(在某种意义上),它们是上面“等式”的rhs。你希望在特定环境中对它们进行评估,其中存在以某种形式存在的x
。 - IRTFM