-1
私は以下のようなテーブルを持っています。各行には店舗ID、クーポンの1つにつき割引率%があります。各ストアは複数のクーポンを持つことができますが、(store + discount%)は主キーです。私はトップ10のクーポンを(ディスカウント%を減らすことによって)探したいと思っていますが、同じ店から2つのクーポンしか得られません。これを行う最も効率的な方法は何ですか?私のロジックは、データを複数回ソートすることです。より効率的な方法がありますか?トップエントリを提供するデータのソート
df <- data.frame(Store=c("Lowes","Lowes","Lowes","Lowes","HD","HD","HD","ACE",
"ACE","Misc","Misc","Other","Other","Last","Last","Last"),
`discount_%`=c("60%","50%","40%","30%","60%","50%","40%","30%",
"20%","50%","30%","20%","10%","10%","5%","3%"),
check.names = FALSE)
- 私の解決策は、店を無視して、割引でテーブルをソート IDを作成することです:私は、サンプル・データR.
でこれを行うしたいと思います。 IDは降順でクーポンを表します
- 次にストアと割引によって、店舗別に クーポンのランキングを持つID2を作成します。
- その後、ID2> 2
- はその後、これを試してみてくださいトップ10行
あなたのロジックは何ですか?私が言及したものよりも良い論理はありますか? – user2543622
@ user2543622 - サンプルデータに余分な行を追加して、ソリューションの耐誤り性を向上させました。基本的に、これは各店舗から最大2つの最高割引値を受け取り、割引の数値で出力を注文します。これは、リストされた割引の合計数を1 – www
にしていただきありがとうございます。しかし、より少ないコンピューティングパワーを使用してこの問題を解決する最良のロジックは何ですか。私はあなたのコードに感謝しますが、最高のロジックを知りたいです。何十億行もあると仮定します。この問題を解決する最も効率的な方法は何でしょうか。 – user2543622