我有一个矩阵M
,我想排序很多行,以便列中的行顺序是固定的,但列是重新排序的。
我知道我可以使用以下代码实现此目的:
M[,order(M[1,],M[2,],M[3,],M[4,])]
但是如何推广这段代码以使其适用于4行以上?
答案 0 :(得分:3)
我们可以转换为data.frame
并将do.call
与order
res <- M[,do.call(order, as.data.frame(t(M))[1:4])]
#OP's code
res2 <- M[,order(M[1,],M[2,],M[3,],M[4,])]
identical(res, res2)
#[1] TRUE
set.seed(1)
M <- matrix(sample(1:25), 5, 5)