【发布时间】:2016-05-08 17:01:53
【问题描述】:
我有一个矩阵,比如说:
c <- c(1,2,3,4,5,0,1,-5,3,1,-3,2,-2,1,2,0,1,0,3,3,5,-5,3,-1,0)
M <- matrix(c, byrow=T, nrow=5)
M
所以:
M
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 0 1 -5 3 1
[3,] -3 2 -2 1 2
[4,] 0 1 0 3 3
[5,] 5 -5 3 -1 0
我知道如何按列 [,3] 的绝对值对 M 进行排序(例如):
Ma <- abs(M)
Ms <- M[order(Ma[,3], decreasing = T),]
Ms
所以:
Ms
[,1] [,2] [,3] [,4] [,5]
[1,] 0 1 -5 3 1
[2,] 1 2 3 4 5
[3,] 5 -5 3 -1 0
[4,] -3 2 -2 1 2
[5,] 0 1 0 3 3
但我想要的是M不是按整列[,3]排序的,而是按最后3个绝对值排序的,这样M的前两行就不会改变:
Ms
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 0 1 -5 3 1
[3,] 5 -5 3 -1 0
[4,] -3 2 -2 1 2
[5,] 0 1 0 3 3
我找不到简单的方法。有什么想法吗?
谢谢。
【问题讨论】:
-
嗯,非常感谢!