4

好吧,我陷入了一个愚蠢的循环。我已经阅读了如何按列对数据框进行排序?,但还需要一个提示。我想要一个函数,它采用具有任意列数的矩阵,并按顺序对所有列进行排序。例如,对于foo具有N列的矩阵,等效于foo[order(foo[,1],foo[,2],...foo[,N]),]. 我很高兴使用 a withorby结构,并在必要时定义colnames我的矩阵,但我不知道如何自动收集参数到order(或到with) 。或者,我应该说,我可以用它来构建整个血腥的字符串pastecall但我相信还有更直接的方法。

4

1 回答 1

8

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

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

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

于 2013-06-27T18:07:38.817 回答