在R中对矩阵中的行和列进行排序

在R中对矩阵中的行和列进行排序,r,matrix,R,Matrix,我有以下矩阵: [,1] [,2] [,3] [,4] [1,] 2275.351 2275.351 2275.351 2275.351 [2,] 2269.562 2269.562 2269.562 2269.562 [3,] 1925.700 1925.700 1925.700 1925.700 [4,] 1904.195 1904.195 1904.195 1904.195 [5,] 1974.039 1974.039 1974

我有以下矩阵:

          [,1]     [,2]     [,3]     [,4] 
 [1,] 2275.351 2275.351 2275.351 2275.351 
 [2,] 2269.562 2269.562 2269.562 2269.562
 [3,] 1925.700 1925.700 1925.700 1925.700 
 [4,] 1904.195 1904.195 1904.195 1904.195 
 [5,] 1974.039 1974.039 1974.039 1974.039 
我想对这个矩阵进行排序,以便生成下面的矩阵

          [,1]     [,2]     [,3]     [,4] 
 [1,] 1904.195 1904.195 1904.195 1904.195 
 [2,] 1925.700 1925.700 1925.700 1925.700
 [3,] 1974.039 1974.039 1974.039 1974.039 
 [4,] 2269.562 2269.562 2269.562 2269.562
 [5,] 2275.351 2275.351 2275.351 2275.351
有人有优雅的r代码吗


诚恳地说,你的问题并不明确。这取决于您希望如何排序。您是否独立地对每列进行排序?或者,您是否对所有值进行排序,并将dem排列成一行?还是按照第一列的顺序对所有列进行排序

# Read your data
x <- matrix(scan(text = "
2275.351 2275.351 2275.351 2275.351
2269.562 2269.562 2269.562 2269.562
1925.700 1925.700 1925.700 1925.700
1904.195 1904.195 1904.195 1904.195
1974.039 1974.039 1974.039 1974.039"), byrow = TRUE, ncol = 4)


# Sort all entries in a row-major order:
A <- matrix(sort(t(x)), nrow = nrow(x), byrow = TRUE)
print(A)

# Sort each column
B <- apply(x, 2, sort)
print(B)

你能准确地解释一下你想怎样分类吗?是否按行的主要顺序对每列或所有条目进行排序?您给定的输出不是明确的。如果您的矩阵名为dat,dat[orderdat[,1],],则所有列的值都相同?dat[orderdat[,1],]此代码解决了我的问题。谢谢
a[do.call(order, lapply(1:NCOL(a), function(i) a[, i])), ]
           V1       V2       V3       V4
[1,] 1904.195 1904.195 1904.195 1904.195
[2,] 1925.700 1925.700 1925.700 1925.700
[3,] 1974.039 1974.039 1974.039 1974.039
[4,] 2269.562 2269.562 2269.562 2269.562
[5,] 2275.351 2275.351 2275.351 2275.351