我有一个像这样的数字矩阵:
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,]
}
但它不起作用。你有什么建议吗?
答案 0 :(得分:1)
我们order
列last
获取预期的输出
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)