如何在R中对矩阵进行排序(附实例)

556 阅读1分钟

你可以使用以下方法在R中按某一列对矩阵进行排序。

方法1:按一列递增对矩阵进行排序

sorted_matrix <- my_matrix[order(my_matrix[, 1]), ]

方法2:按一列递减对矩阵进行排序

sorted_matrix <- my_matrix[order(my_matrix[, 1], decreasing=TRUE), ]

下面的例子展示了如何在实践中使用以下矩阵的各种方法:

#create matrix
my_matrix <- matrix(c(5, 4, 2, 2, 7, 9, 12, 10, 15, 4, 6, 3), ncol=2)

#view matrix
my_matrix

     [,1] [,2]
[1,]    5   12
[2,]    4   10
[3,]    2   15
[4,]    2    4
[5,]    7    6
[6,]    9    3

例1:按一列递增对矩阵进行排序

下面的代码显示了如何在第一列的基础上通过增加值对矩阵进行排序:

#sort matrix by first column increasing
sorted_matrix <- my_matrix[order(my_matrix[, 1]), ]

#view sorted matrix
sorted_matrix

     [,1] [,2]
[1,]    2   15
[2,]    2    4
[3,]    4   10
[4,]    5   12
[5,]    7    6
[6,]    9    3

请注意,现在矩阵是按第一列的数值递增来排序的。

我们也可以通过把1改成2,在第二列的基础上按递增值进行排序。

#sort matrix by second column increasing
sorted_matrix <- my_matrix[order(my_matrix[, 2]), ]

#view sorted matrix
sorted_matrix

     [,1] [,2]
[1,]    9    3
[2,]    2    4
[3,]    7    6
[4,]    4   10
[5,]    5   12
[6,]    2   15

矩阵现在是按照第二列的数值递增进行排序的。

例2:通过一列递减对矩阵进行排序

下面的代码显示了如何在第一列的基础上以递减值对矩阵进行排序。

#sort matrix by first column decreasing
sorted_matrix <- my_matrix[order(my_matrix[, 1], decreasing=TRUE), ]

#view sorted matrix
sorted_matrix

     [,1] [,2]
[1,]    2   15
[2,]    2    4
[3,]    4   10
[4,]    5   12
[5,]    7    6
[6,]    9    3

请注意,现在矩阵是按照第一列的数值递减来排序的。