相关疑难解决方法(0)

ddply和聚合之间的区别

有人可以通过以下示例帮助我理解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

7
推荐指数
3
解决办法
7147
查看次数

标签 统计

r ×1