Объединение нескольких дублированных строк и суммирование одного из их столбцов - PullRequest
2 голосов
/ 06 ноября 2011

У меня есть этот фрейм данных:

> names(events)
 [1] "EID"    "X"      "Y"      "trip"   "tow"    "catch"  "effort" "depth" 
 [9] "season" 

Где некоторые из моих уникальных идентификаторов "EID" появляются более одного раза в 162 случаях.

> length(events$EID)-length(unique(events$EID))
[1] 162

Я хотел бы объединить каждый дублируемый EID и суммировать их «улов». Я пробовал несколько вещей с пакетом plyr ... но не могу найти довольно простую команду.

Любые советы будут высоко оценены! Большое спасибо!

1 Ответ

3 голосов
/ 06 ноября 2011

Вот пример, с которого следует начать:

library(plyr)

n = 100

# Simulate data
set.seed(12345)
EID   = factor(sample(10, n, replace=T))
catch = runif(n)
data  = data.frame(EID, catch)

# Sum catch by EID
ddply(data, 'EID', function(x) data.frame(catch.sum = sum(x$catch)))
> ddply(data, 'EID', function(x) data.frame(catch.sum = sum(x$catch)))
   EID catch.sum
1    1  6.041294
2    2  4.889522
3    3  2.466826
4    4  9.633270
5    5  5.673484
6    6  3.389666
7    7  6.572664
8    8  8.646577
9    9  4.056461
10  10  5.933441
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...