【发布时间】:2011-04-30 03:24:05
【问题描述】:
有谁知道对 ddply 汇总操作产生的结果进行排序的巧妙方法?
这就是我正在做的按深度降序排列的输出。
ddims <- ddply(diamonds, .(color), summarise, depth = mean(depth), table = mean(table))
ddims <- ddims[order(-ddims$depth),]
有输出...
> ddims
color depth table
7 J 61.88722 57.81239
6 I 61.84639 57.57728
5 H 61.83685 57.51781
4 G 61.75711 57.28863
1 D 61.69813 57.40459
3 F 61.69458 57.43354
2 E 61.66209 57.49120
不太难看,但我希望有一种方法可以在 ddply() 中很好地做到这一点。有人知道怎么做吗?
Hadley 的 ggplot2 书中有这个 ddply 和子集的示例,但它实际上并没有对输出进行排序,只是选择每组最小的两个钻石。
ddply(diamonds, .(color), subset, order(carat) <= 2)
【问题讨论】:
-
我不确定你是否可以“即时”做一些事情——但只是一个随机注释,而不是
ddims[order(-ddims$depth),],你可以试试ddims[order(ddims$depth, decreasing=TRUE),]。这样您就不必制作新的“负”矢量对象。