にちにちメモ

天文系大学院生のブログ。日々の生活の中で忘れがちなこと/忘れたくないことをメモ。

Rでbinning

Rでbinningする方法。

色ー等級図を作るときなどに便利。

*binning -> 1セットのデータを、ある条件によって複数に分割すること。

     たとえば、日本人の年収を調べたときに、各個人の年収額はばらばらだが、

     年収100万未満、100万〜200万、…といった具合にグループに分割して

     解析すると便利な場合が多々ある。これがbinningである。

 

  1. 数値データを用意する。
    データフレームか行列で。
  2. グループに分割する際の条件を決める。
    • データのどの項目を分割する際の判断対象とするか。
    • グループに分割する際の、その項目の値の範囲。
      (グループ1はV_1の値がx_1以上x_2以下、…)
  3. データフレーム内の各データがどのグループに属するかを判定。
    cut 関数を用いる。
    > f <- cut(data, breaks=c(data_min, group1_max, group2_max, ..., data_max+alpha)
    ここで、data_maxに定数を加えているのは、デフォルトの設定では
    group_max≦V<data_max
    となり、最後のグループにdata_maxが含まれなくなってしまうため。
    イコールのついた不等号を右側に持ってくるオプションも存在する。
    なんて名前だったっけ?
    group_max<V≦data_max
    fには各行データがどのグループに属するかを因子が格納される。
    設定した範囲内に含まれなかったデータは"NA"の因子が付けられる。
  4. データフレームを因子によって分割。
    split 関数を用いる。
    > bin_data <-  split(data, f)
    分割されたデータは、リストの形で格納される。
    つまり、bin_data1にはグループ1、bin_data2にはグループ2に入れられた
    行データが入っている。