在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