Подтвердить что ты не робот

R-программирование - сумма элементов строк с общими значениями

Здравствуйте и заблаговременно за вашу помощь,

(см. раздел "Комментарии" для дополнительной информации: например, столбец затрат в приведенном ниже примере добавлен к этому вопросу; Саймон дает отличный ответ, но сам столбец затрат не представлен в ответе данных от него, хотя функция, которую он предоставляет для работы со столбцом стоимости)

У меня есть набор данных, давайте назовем его "данными", которые выглядят как

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

Что я хотел бы сделать, это суммировать элементы PAID (и COST) записей с тем же значением NAME и уменьшить количество строк (как в этом примере) до 2, так что мой новый фрейм данных выглядит так:

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

Что касается сроков, мне действительно не важно, какой из них переживает процесс суммирования.

Я дошел до rowSums (данные), но я не совсем уверен, как его использовать. Любая помощь будет принята с благодарностью.

4b9b3361

Ответ 1

aggregate - это функция, которую вы ищете:

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