次のデータフレームがあるとします。
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
私は今、2番目の組み合わせが選択されたという結果でパーセンテージ偏差をチェックすることにより、「最良の」ソリューションが選択される方法をより「インテリジェント」にしたいと考えています。
a b c
2 0.8 200 20
データフレームの変更順序 (既に達成済み、上記を参照)
オーダー (-a、b、-c)
(新規) a が最良の a 値の 15% よりも悪くないすべての行の b 値を確認します。現在の b 値より少なくとも 50% 優れている b 値を持つ行を選択します。
上記の例の場合、2 行目が選択されます。
これはどのように達成できますか?