按最后一列对矩阵排序

时间:2017-01-05 17:38:19

标签: r sorting matrix

我有一个像这样的数字矩阵:

5  2  4  6  1
2  3  3  2  5
1  1  4  5  2
3  6  2  1  0

我想按最后一列的行对其进行排序,以得到如下的矩阵:

3  6  2  1  0
5  2  4  6  1
1  1  4  5  2
2  3  3  2  5

我尝试运行此代码:

t <- function(m){
b <- sapply(1:length(m[,1]),function(x){sort(m[x,5],decreasing=F)})
m[b,]
}

但它不起作用。你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我们orderlast获取预期的输出

m[order(m[,ncol(m)]),]
#     [,1] [,2] [,3] [,4] [,5]
#[1,]    3    6    2    1    0
#[2,]    5    2    4    6    1
#[3,]    1    1    4    5    2
#[4,]    2    3    3    2    5

数据

m <- structure(c(5L, 2L, 1L, 3L, 2L, 3L, 1L, 6L, 4L, 3L, 4L, 2L, 6L, 
2L, 5L, 1L, 1L, 5L, 2L, 0L), .Dim = 4:5)