4

わかりました、私はばかげたループで立ち往生しています。How to sort a dataframe by column(s)?の役立つアイデアを読みました。、しかし、もう1つのヒントが必要です。任意の列数の行列を取り、すべての列を順番に並べ替える関数が欲しいです。たとえば、列を持つ行列の場合fooNは と同等のことを行いますfoo[order(foo[,1],foo[,2],...foo[,N]),]withor構成を喜んで使用し、by必要に応じて行列の を定義しますが、 (または ) へcolnamesの引数の収集を自動化する方法がわかりません。または、血まみれの文字列全体を作成してからそれを作成することもできますが、もっと簡単な方法があると確信しています.orderwithpastecall

4

1 に答える 1

8

最もエレガントな(「エレガント」の特定の値の場合)方法は、それをデータフレームに変換し、次を使用することdo.callです。

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

これが機能するのは、データ フレームがlistいくつかの属性が関連付けられた単なる変数であり、list.

于 2013-06-27T18:07:38.817 に答える