好吧,我陷入了一个愚蠢的循环中。我已经在How to sort a dataframe by column(s)?阅读了有用的想法,但还需要一个提示。我想要一个带有任意列数的矩阵的函数,并按顺序对所有列进行排序。例如,对于具有foo
列的矩阵N
,
相当于foo[order(foo[,1],foo[,2],...foo[,N]),]
。我很高兴使用with
或by
构造,并在必要时定义我的矩阵的colnames
,但我无法弄清楚如何自动收集{{{}的参数1}}(或order
)。
或者,我应该说,我可以使用with
然后paste
构建整个血腥字符串,但我确信这是一种更直接的方式。
答案 0 :(得分:8)
最优雅(对于某些“优雅”的方式)方式是将其转换为数据框,并使用do.call
:
foo[do.call(order, as.data.frame(foo)), ]
这是有效的,因为数据框只是具有一些相关属性的变量list
,并且可以传递给期望list
的函数。