R 如何按所有列对矩阵进行排序
好吧,我陷入了一个愚蠢的循环。我已经在上通读了一些有用的想法,但还需要一点提示。我想要一个函数,它接受一个具有任意列数的矩阵,并按顺序对所有列进行排序。例如,对于具有R 如何按所有列对矩阵进行排序,r,sorting,matrix,R,Sorting,Matrix,好吧,我陷入了一个愚蠢的循环。我已经在上通读了一些有用的想法,但还需要一点提示。我想要一个函数,它接受一个具有任意列数的矩阵,并按顺序对所有列进行排序。例如,对于具有N列的矩阵foo, 相当于foo[顺序(foo[,1],foo[,2],…foo[,N]),]。我很乐意使用with或by构造,并在必要时定义矩阵的colnames,但我不知道如何自动收集order(或with)的参数。 或者,我应该说,我可以用粘贴构建整个血腥字符串,然后调用它,但我相信有一种更直接的方法 最优雅的方法(对于“优雅
N
列的矩阵foo
,
相当于foo[顺序(foo[,1],foo[,2],…foo[,N]),]
。我很乐意使用with
或by
构造,并在必要时定义矩阵的colnames
,但我不知道如何自动收集order
(或with
)的参数。
或者,我应该说,我可以用粘贴
构建整个血腥字符串,然后调用
它,但我相信有一种更直接的方法 最优雅的方法(对于“优雅”的某些值)是将其转换为数据帧,并使用do.call
:
foo[do.call(order, as.data.frame(foo)), ]
这是因为数据帧只是具有一些相关属性的变量的
列表
,可以传递给需要列表的函数
谢谢!我一直在玩弄do.call
,完全忘记了强制数据帧。