plyrパッケージのDiamondsデータセットから価格/カラットの面で最良の取引を見つけようとしています
私もです
new = ddply(diamonds, c("cut", "color", "clarity"), transform, ecart= price/carat - mean(price/carat))
best = ddply(new, c("cut", "color", "clarity"), summarize, which(ecart == min(ecart))
しかし、私がそれをするとき、私は得ます
head(best)
cut color clarity ..1
1 Fair D I1 4
2 Fair D SI2 49
3 Fair D SI1 39
4 Fair D VS2 9
5 Fair D VS1 2
したがって、インデックスはddplyによって作成されたサブグループから取得されているようです。ここでは、最初のインデックス4のみがグローバルインデックスに対応しています。new [2、]を検索すると、たとえばFair、D、VS1のタイプではありません。
グローバルインデックスの位置を簡単に取得する方法について何かアイデアはありますか?
たとえば、id列をエレガントに追加するにはどうすればよいですか?より良い解決策はありますか?