按R中的特定列对聚合输出进行排序

按R中的特定列对聚合输出进行排序,r,sorting,aggregate,R,Sorting,Aggregate,我试图对传递给多个函数的聚合函数的输出进行排序,因为我想显示每个配对的平均值和计数 我的调用如下(以内置数据集Loblolly为例): 我尝试按如下方式将sort写入聚合调用中,但没有成功: LobHeigh <- aggregate(Loblolly$height, by=list(Loblolly$Seed, Loblolly$age),FUN=function(x) c(mn=sort(mean(x)), n=length(x))) LobHeigh-LobHeigh[o

我试图对传递给多个函数的聚合函数的输出进行排序,因为我想显示每个配对的平均值和计数

我的调用如下(以内置数据集Loblolly为例):

我尝试按如下方式将sort写入聚合调用中,但没有成功:

LobHeigh <- aggregate(Loblolly$height, by=list(Loblolly$Seed,     
Loblolly$age),FUN=function(x) c(mn=sort(mean(x)), n=length(x)))
LobHeigh-LobHeigh[order(LobHeigh$x),]
我知道这个类(LobHeigh$x)显示了x是一个矩阵,但是我不知道如何访问x.mn来使用它进行排序


有什么方法可以做到这一点吗?

您可以通过双重索引来访问该列,
LobHeigh[,3][,1]

LobHeigh[sort(LobHeigh[,3][,1], TRUE),]
也就是说,你最好把它变成一个更传统的矩阵

cbind(LobHeigh[,1:2], LobHeigh[,3])

从那里开始工作。

太棒了,非常感谢乔希。我无法使双重索引工作,但cbind已经完美地解决了这个问题。在cbind之后,我只需要使用LobHeigh[order(LobHeigh$mn),]就可以了。非常感谢。
> LobHeigh <- aggregate(Loblolly$height, by=list(Loblolly$Seed,     
Loblolly$age),FUN=function(x) c(mn=mean(x), n=length(x)))
> LobHeigh[order(LobHeigh$x),]
LobHeigh[sort(LobHeigh[,3][,1], TRUE),]
cbind(LobHeigh[,1:2], LobHeigh[,3])