Rでのデータフレームの列に基づく並べ替え方
概要
Rでデータをソートするのにsort()
関数を使えば簡単だが、デフォルトではsort()
関数はベクターのみをソートする。しかし実際は、データフレームの多くのカテゴリーを扱う必要があるため、列単位でソートできる方法が必要になることが多い。
コード
x<-c(pi,3,99,0,-1)
order(x)
x[order(x)]
head(iris)
head(iris[order(iris$Petal.Length)])
この方法でベクターの全コンポーネントについて前から昇順に’位置’のベクターを得ることができる。これを使うと、実質的にsort()
関数と同じ結果を得ることができる。
この方法が一般的なソーティングと異なる点は、具体的に行の番号を参照することで得られたため、データフレームに適用できるという点だ。次の例を見よう。
上はPetal.Length
を基準にiris
のデータをソーティングしたものだ。order()
関数によりPetal.Length
によってソートできるベクターを得て、その順序でiris
のデータを参照することで、実質的に列基準でソーティングされた新しいデータフレームを得る原理だ。