如何按所有列排序矩阵

时间:2013-06-27 18:04:24

标签: r sorting matrix

好吧,我陷入了一个愚蠢的循环中。我已经在How to sort a dataframe by column(s)?阅读了有用的想法,但还需要一个提示。我想要一个带有任意列数的矩阵的函数,并按顺序对所有列进行排序。例如,对于具有foo列的矩阵N, 相当于foo[order(foo[,1],foo[,2],...foo[,N]),]。我很高兴使用withby构造,并在必要时定义我的矩阵的colnames,但我无法弄清楚如何自动收集{{{}的参数1}}(或order)。 或者,我应该说,我可以使用with然后paste构建整个血腥字符串,但我确信这是一种更直接的方式。

1 个答案:

答案 0 :(得分:8)

最优雅(对于某些“优雅”的方式)方式是将其转换为数据框,并使用do.call

foo[do.call(order, as.data.frame(foo)), ]

这是有效的,因为数据框只是具有一些相关属性的变量list,并且可以传递给期望list的函数。

相关问题