logo

Rでのデータフレームの列に基づく並べ替え方 📂R

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()関数と同じ結果を得ることができる。

20190415_132618.png この方法が一般的なソーティングと異なる点は、具体的に行の番号を参照することで得られたため、データフレームに適用できるという点だ。次の例を見よう。

20190415_132659.png

上はPetal.Lengthを基準にirisのデータをソーティングしたものだ。order()関数によりPetal.Lengthによってソートできるベクターを得て、その順序でirisのデータを参照することで、実質的に列基準でソーティングされた新しいデータフレームを得る原理だ。