有人可以通过以下示例帮助我理解aggregate和ddply之间的区别:
数据框:
mydat <- data.frame(first = rpois(10,10), second = rpois(10,10),
third = rpois(10,10), group = c(rep("a",5),rep("b",5)))
Run Code Online (Sandbox Code Playgroud)
使用aggregate将函数应用于按因子分割的数据框的一部分:
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
Run Code Online (Sandbox Code Playgroud)
尝试将聚合用于另一个函数(返回错误消息):
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
Run Code Online (Sandbox Code Playgroud)
现在,尝试使用ddply(plyr包):
ddply(mydat, .(group), function(u) cor(u$first,u$second))
group V1
1 a -0.5083042
2 b -0.6329968
Run Code Online (Sandbox Code Playgroud)
所有提示,链接,批评都非常感谢.
r ×1