根据R中的所有行对矩阵进行排序

根据R中的所有行对矩阵进行排序,r,R,我有一个矩阵M,其中有许多行,我希望对这些行进行排序,以使列中的行的顺序是固定的,但列的顺序是重新排序的 我知道我可以通过这样的代码实现这一点: M[,顺序(M[1,],M[2,],M[3,],M[4,])] 但是,我如何对该代码进行泛化,使其能够处理4行以上的数据?我们可以将其转换为data.frame并使用do.call命令 res <- M[,do.call(order, as.data.frame(t(M))[1:4])] #OP's code res2 <- M[,orde

我有一个矩阵
M
,其中有许多行,我希望对这些行进行排序,以使列中的行的顺序是固定的,但列的顺序是重新排序的

我知道我可以通过这样的代码实现这一点:

M[,顺序(M[1,],M[2,],M[3,],M[4,])]


但是,我如何对该代码进行泛化,使其能够处理4行以上的数据?

我们可以将其转换为
data.frame
并使用
do.call
命令

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

res谢谢,但这不是理想的结果。这将排列列中行的顺序。@Student它提供与代码相同的输出。请用我展示的例子来验证!加上t(M)似乎解决了这个问题。非常感谢你!
set.seed(1)
M <- matrix(sample(1:25), 5, 5)