通过R中的第一列对矩阵中的指定行进行排序

时间:2014-05-23 13:36:14

标签: r sorting matrix

我有 n 行和3列的字符矩阵 mtr

我有一个带有一些数字的数字向量 nmb ,例如,4,5,6

我想在我的矩阵的第一列中仅排序 mtr 的行,其数量由 nmb 包含。

所以在我的情况下,我希望保持矩阵不变,除了第4,5,6行,我希望按第一列排序,当然,写回我的矩阵 mtr

我怎么能这样做?感谢。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

mtr[nmb,] <- mtr[order(mtr[nmb,1]),]

答案 1 :(得分:0)

我认为这样做会

mtr[nmb,] <- mtr[nmb,][order(mtr[nmb,1]),]

一个例子:

nmb <- 4:6
mtr <- matrix(30:1, ncol=3)

> mtr
     [,1] [,2] [,3]
[1,]   30   20   10
[2,]   29   19    9
[3,]   28   18    8
[4,]   27   17    7
[5,]   26   16    6
[6,]   25   15    5
[7,]   24   14    4
[8,]   23   13    3
[9,]   22   12    2
[10,]   21   11    1

> mtr[nmb,] <- mtr[nmb,][order(mtr[nmb,1]),]

> mtr
     [,1] [,2] [,3]
[1,]   30   20   10
[2,]   29   19    9
[3,]   28   18    8
[4,]   25   15    5   <-
[5,]   26   16    6   <- sorted
[6,]   27   17    7   <-
[7,]   24   14    4
[8,]   23   13    3
[9,]   22   12    2
[10,]   21   11    1