集計を使用して、必要なものに近いデータ フレームを作成しました。ただし、必要なものを正確に取得するのに問題があります。
生データが次のようになっているとします。
data
Order Item Price Quantity
1 A 10 1
1 A 20 3
2 B 30 1
2 C 40 1
3 B 30 1
4 C 50 1
5 A 10 1
5 B 40 2
商品と注文に基づいて価格と数量を合計します。
data.new <- aggregate(cbind(price, quantity) ~ Order + Item, sum, data = data)
data.new
╔═══════╦══════╦═══════╦══════════╗
║ Order ║ Item ║ Price ║ Quantity ║
╠═══════╬══════╬═══════╬══════════╣
║ 1 ║ A ║ 30 ║ 4 ║
║ 2 ║ B ║ 30 ║ 1 ║
║ 2 ║ C ║ 40 ║ 1 ║
║ 3 ║ B ║ 30 ║ 1 ║
║ 4 ║ C ║ 50 ║ 1 ║
║ 5 ║ A ║ 10 ║ 1 ║
║ 5 ║ B ║ 40 ║ 2 ║
╚═══════╩══════╩═══════╩══════════╝
これは Order = 1 の場合にうまく機能しますが、各行を一意の Order にする必要があります。そのため、一意の Order ごとに最大 Price で Itemを要約したいと思います。アイテムは、一意の注文の販売価格の大部分を動かしたものを示すための高レベルの要素です。次のようになります。
data.new <- ????
data.new
╔═══════╦══════╦═══════╦══════════╗
║ Order ║ Item ║ Price ║ Quantity ║
╠═══════╬══════╬═══════╬══════════╣
║ 1 ║ A ║ 30 ║ 4 ║
║ 2 ║ C ║ 70 ║ 2 ║
║ 3 ║ B ║ 30 ║ 1 ║
║ 4 ║ C ║ 50 ║ 1 ║
║ 5 ║ B ║ 50 ║ 3 ║
╚═══════╩══════╩═══════╩══════════╝