2015-08-04 3 views
1

Я пытаюсь сортировать вывод функции агрегата, передающей несколько функций, так как я хочу показать средства и подсчеты каждого спаривания.Сортировка агрегатного вывода по определенному столбцу в 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, чтобы использовать ее для сортировки.

Есть ли способ сделать это?

ответ

2

Вы можете получить доступ к столбцу путем двойной индексации, LobHeigh[,3][,1].

Это, скорее всего, лучше сделать его более традиционной матрицей.

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

и работа с ним оттуда.

+0

Фантастический, большое спасибо Джош. Я не мог заставить двойную индексацию работать, но cbind решила проблему отлично. После cbind я могу просто использовать LobHeigh [order (LobHeigh $ mn)], и он работает. Спасибо! –

Смежные вопросы