以前の記事に標準化(Z-スコア)の求め方を解説しましたが、Z‐スコアを見れば平均(0)を中心にデータの上下が標準偏差を基準として理解できます。
しかし、標準偏差を使わなくてもRにはデータを並べる(並び変える)便利な関数がありますので、今回は「データの並び替え」についてまとめてみます。
rank関数
rank関数を使えば、簡単にデータに順位を付けてくれます(デフォルトでは小さい順)。
例えば、10人の体重をランキングするなら、(※name関数を使って、名前を追加しています)
weight <- c(63,88,73,59,57,61,51,55,45,62)
names(weight) <- c("山田","佐藤","田中","近藤","鈴木","富永","橋本","野田","森","村上")
weight
山田 佐藤 田中 近藤 鈴木 富永 橋本 野田 森 村上
63 88 63 59 57 61 51 55 45 62
そこで、rank関数を使うと、
rank(weight)
山田 佐藤 田中 近藤 鈴木 富永 橋本 野田 森 村上
8 10 9 5 4 6 2 3 1 7
という風に、体重の軽い順ランキングが名前の下に表示されています。
逆に、大きい順でランキングする場合は、rank(-データ名)とマイナスを追加すればOKです。
rank(-weight)
山田 佐藤 田中 近藤 鈴木 富永 橋本 野田 森 村上
3 1 2 6 7 5 9 8 10 4
sort関数
rank関数ではランキングを表示してくれるけど、いっそ順番で並び替えてくれる方が視覚的にもわかりやすいですね。
そんな時はsort関数を使えば、データを並び替えることができます(※デフォルトでは小さい順)。
sort(weight)
森 橋本 野田 鈴木 近藤 富永 村上 山田 田中 佐藤
45 51 55 57 59 61 62 63 73 88
ちなみに、sort関数は単に並び替えるだけでなく、
並び替えて~番目のデータを抽出することもできます。
これにはsort関数とブラケット([ ])を使います。
例えば、3番目の体重の人は?
sort(weight)[3]
野田
55
と、いう風にブラケットの中に番号(3番)を指定すれば、値(3番目の野田さんの値)が返ってくるというわけです。
逆に大きい順に並べたい場合は、sort関数の( )内にdecreasing = TRUEを追加するだけです。
sort(weight, decreasing = TRUE)
佐藤 田中 山田 村上 富永 近藤 鈴木 野田 橋本 森
88 73 63 62 61 59 57 55 51 45
まとめ
今回は、データの並べるrank関数と並び替えるsort関数についてまとめてみました。
特に、sort関数はデータ分析には頻繁に使う関数ですので、使い慣れておくといいですよ。
コメント