Я пытаюсь сортировать вывод функции агрегата, передающей несколько функций, так как я хочу показать средства и подсчеты каждого спаривания.Сортировка агрегатного вывода по определенному столбцу в R
Я звоню следующим образом (используя встроенный набор данных Loblolly в качестве примера):
> LobHeigh <- aggregate(Loblolly$height, by=list(Loblolly$Seed,
Loblolly$age),FUN=function(x) c(mn=mean(x), n=length(x)))
> head(LobHeigh)
Group.1 Group.2 x.mn x.n
1 329 3 3.93 1.00
2 327 3 4.12 1.00
3 325 3 4.38 1.00
4 307 3 3.91 1.00
5 331 3 3.46 1.00
6 311 3 3.88 1.00
Я хотел бы этот выход выглядеть следующим образом (количество знаков после запятой в порядке так или иначе):
Group.1 Group.2 x.mn x.n
325 3 4.38 1
327 3 4.12 1
329 3 3.93 1
307 3 3.91 1
311 3 3.88 1
331 3 3.46 1
Я попытался написать своего рода в агрегированном вызова следующим образом, но это не сработало:
LobHeigh <- aggregate(Loblolly$height, by=list(Loblolly$Seed,
Loblolly$age),FUN=function(x) c(mn=sort(mean(x)), n=length(x)))
Я также попытался сортировать LobHeigh после вызова функции следующим образом, как я знаю, что это работает, если только агрегат на среднем сам по себе:
> 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 $ х) показывает, что х матрица, однако я не могу решить, как получить доступ к x.mn, чтобы использовать ее для сортировки.
Есть ли способ сделать это?
Фантастический, большое спасибо Джош. Я не мог заставить двойную индексацию работать, но cbind решила проблему отлично. После cbind я могу просто использовать LobHeigh [order (LobHeigh $ mn)], и он работает. Спасибо! –