Может ли кто-нибудь помочь мне понять разницу между агрегатом и ddply на следующем примере:
Фрейм данных:
mydat <- data.frame(first = rpois(10,10), second = rpois(10,10),
third = rpois(10,10), group = c(rep("a",5),rep("b",5)))
Используйте агрегат, чтобы применить функцию к части фрейма данных, разделенной на коэффициент:
aggregate(mydat[,1:3], by=list(mydat$group), mean)
Group.1 first second third
1 a 8.8 8.8 10.2
2 b 6.8 9.4 13.4
Попробуйте использовать агрегат для другой функции (возвращает сообщение об ошибке):
aggregate(mydat[,1:3], by=list(mydat$group), function(u) cor(u$first,u$second))
Error in u$second : $ operator is invalid for atomic vectors
Теперь попробуйте то же самое с ddply (пакет plyr):
ddply(mydat, .(group), function(u) cor(u$first,u$second))
group V1
1 a -0.5083042
2 b -0.6329968
Все советы, ссылки, критика приветствуются.