R – データフレームのソート

order()関数

以下のデータを準備する。

このデータフレームをheightの項目の昇順のオーダーでソートしたいとする。

order()関数というのがあって、引数の項目でソートしたときに元データの項目番号がどういう順番で並ぶかを返してくれる。

たとえば1番目のデータは1番小さい157で、これは5番目のデータ。2番目のデータは2番目に小さい160で2番目のデータ・・・という風に、heightデータを昇順に並べた時の元データの項目番号の並びを教えてくれる。

rank()関数がデータを昇順に並べた時の、そのデータのソート後の順番を返すのとは違う点に注意。

この結果を元のデータフレームの行部分に使うと、その順番で並べ替えられたデータを返してくれる。

降順ソート

データを降順にソートしたい時は、decreasing=Tで指示する。

複数列のソートなど

以下の例は、数値以外でもソートできることと、複数のオーダーを組み合わせたソートの例を示している。

行番号の変更

ソート後に行ラベルを振り直したい場合は、rownames()の内容を変更する。

 

 

2件のコメント

  1. いつも勉強になっております。
    > data[order(data$height, decreasing=T),]
    の部分
    T)の後の , の後何もないですが何を表しているのでしょうか?

    1. レスポンスがずいぶん遅くなって申し訳ありません。
      自分の覚書のようなものなので、人様に見ていただいていると思っていませんでした。
      コメント頂きありがとうございました。

      “,”の件ですが、data[m,n]とするとデータフレームのm行目のn列目のデータが取り出されますが、data[m,]とするとm行目の行データが取り出されるようです。
      order(data$height, decreasing=T)はheightの降順となる行番号を順に返すので、その後を”,]”と省略することで、heightの降順に行データが返されるという風に。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です