可以说我有以下数据框:
a <- c(0.9,0.8,0.7)
b <- c(1000,200,20)
c <- c(10,20,10)
myframe <- data.frame(a,b,c)
1 0.9 1000 10
2 0.8 200 20
3 0.7 20 10
我知道想要找到符合以下规则的“最佳”组合:
- a越高越好,b越低越好,c越高越好
- a 胜过 b 胜过 c
我现在像这样订购数据框......
myframe[with(myframe, order(-a, b, -c))[1],]
...并获得以下返回值:
a b c
1 0.9 1000 10
我现在想通过检查百分比偏差以及选择第二个组合的结果来使选择“最佳”解决方案的方式更加“智能”:
a b c
2 0.8 200 20
数据框的更改顺序(已经实现,见上文)
顺序(-a,b,-c)
(新)检查所有行的 b 值,其中 a 不超过最佳 a 值的 15%。选择 b 值至少比当前 b 值好 50% 的线。
现在在上面的例子中选择了第 2 行。
如何做到这一点?