2013-04-10 10 views
13

こんにちは値や、あなたの援助のため、事前にあなたに感謝Rプログラミング - 共通持つ行の合計要素は、

(追加の洞察のコメントセクションに注意してください。以下この質問に追加された例では、コスト列すなわち、 Simon氏は素晴らしい答えを提供しますが、コストコラム自体は彼のデータ応答には表示されませんが、彼が提供する機能はコストコラムで機能します)

私はデータセットを持っています。このように見える

NAME  DATE  COLOR PAID COST 
Jim  1/1/2013 GREEN 150  100 
Jim  1/2/2013 GREEN 50  25 
Joe  1/1/2013 GREEN 200  150 
Joe  1/2/2013 GREEN 25  10 

私がしたいのは、同じNAME値を持つレコードのPAID(およびCOST)要素を合計し、行の数を2に減らして、新しいデータフレームが次のようになるようにします。

NAME  DATE  COLOR PAID COST 
Jim  1/2/2013 GREEN 200  125 
Joe  1/2/2013 GREEN 225  160 

日付に関する限り、私は合計プロセスで生き残るものは本当に気にしません。

私はrowSums(データ)まで行っていますが、使用方法は正確にはわかりません。どんな助けでも大歓迎です。

答えて

21

aggregateは、あなたが探している機能です。

aggregate(cbind(PAID , COST) ~ NAME + COLOR , data = data , FUN = sum) 
# NAME PAID 
# 1 Jim 200 
# 2 Joe 225 
+0

はあなたにサイモンをありがとうございます。ほんとうにありがとう。これらの行のそれぞれに「COLOR」フィールドを集約して保持する方法があれば、私は疑問を抱いていました。 –

+0

確かに、私は答えを更新します。各自の色フィールドはすべて同じですか?そうでない場合は、最も一般的なものが欲しいですか? –

+0

だから、一人一人のために、すべての色はレコードを通して一定のままです。例えば、ジムはいつもグリーンを持っていて、ジョーは赤いかもしれませんが、ジョーのレコードは常に赤です。 この質問の最後の1つです。 PAIDに加えて別の数値データフィールド(COST)を使用する場合、同様の方法でそのフィールドをどのように合計するのですか? ありがとうございました。 –

関連する問題