-1

次のデータフレームがあるとします。

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
  1. データフレームの変更順序 (既に達成済み、上記を参照)

    オーダー (-a、b、-c)

  2. (新規) a が最良の a 値の 15% よりも悪くないすべての行の b 値を確認します。現在の b 値より少なくとも 50% 優れている b 値を持つ行を選択します。

  3. 上記の例の場合、2 行目が選択されます。

これはどのように達成できますか?

4

1 に答える 1