Поскольку Family
и Type
являются постоянными в группе Code
, вы также можете "группировать" их, ничего не меняя при использовании ddply
.Если ваш исходный набор данных был dat
ddply(dat, .(Family, Code, Type), summarize, Length=mean(Length))
, то дает
Family Code Type Length
1 A 1 Alpha 11.000000
2 A 3 Beta 8.500000
3 B 4 Alpha 7.000000
4 B 5 Alpha 8.000000
5 C 6 Beta 3.666667
Если Family
и Type
не являются постоянными в группе Code
, то вам потребуетсяопределить, как суммировать / агрегировать эти значения.В этом примере я просто беру одно уникальное значение:
ddply(dat, .(Code), summarize, Family=unique(Family),
Length=mean(Length), Type=unique(Type))
Обновление
Подобные опции при использовании dplyr
:
library(dplyr)
dat %>%
group_by(Family, Code, Type) %>%
summarise(Length=mean(Length))
и
dat %>%
group_by(Code) %>%
summarise(Family=unique(Family), Length=mean(Length), Type=unique(Type))