R编程 - 具有共同值的行的和元素

Jon*_*ton 14 aggregate r rowsum

您好,并提前感谢您的帮助,

(请注意注释部分以获得更多见解:即下面示例中的成本列已添加到此问题中; 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
Run Code Online (Sandbox Code Playgroud)

我想要做的是将具有相同NAME值的记录的PAID(和COST)元素相加,并将行数(如本示例中所示)减少为2,这样我的新数据框如下所示:

NAME     DATE     COLOR   PAID    COST
Jim      1/2/2013 GREEN   200     125
Joe      1/2/2013 GREEN   225     160
Run Code Online (Sandbox Code Playgroud)

就日期而言,我并不关心哪一个在求和过程中幸存下来.

我已经达到了rowSums(数据),但我不确定如何使用它.任何帮助将不胜感激.

Sim*_*lon 21

aggregate 是您正在寻找的功能:

aggregate( cbind( PAID , COST ) ~ NAME + COLOR , data = data , FUN = sum )
# NAME PAID
# 1  Jim  200
# 2  Joe  225
Run Code Online (Sandbox Code Playgroud)

  • @JonathanRossCharlton,仅供参考,*不*在*comments*中添加太多细节给答案是有帮助的,特别是如果您不更新您的问题以反映这些新细节.事实上,访问SO以获得类似问题帮助的人可能会被SimonO101的答案搞糊涂,因为您的问题没有提及任何有关"COST"变量的内容.将该附加请求放在问题而不是评论中将增加其可见性并减少其他访问者的混淆. (2认同)