LoginSignup
0
0

More than 5 years have passed since last update.

Rで複数項目に関するhistgramをいい感じに出力する方法 via pipeR

Posted at

ユースケース

以下のようなデータを持っているとしよう

スクリーンショット 2017-05-15 19.36.25.png

flgの値が0なのか1なのかによって、x_iの分布がどのように異なるのかをhistgramでみたい。
そういう場合に使って下さい。

イメージ

これは別のデータを用いたものですがこんな感じになります。
resume_fixes_f.png

snipet

data %>>% (.[, c("flg", "x_1")]) %>>% (~ (.[.$flg == 0,][,2]) %>>% (as.matrix(.)) %>>% (hist(., freq=T, col="#00FFFF40"))) %>>% (.[.$flg == 1,][,2] %>>% (as.matrix(.)) %>>% (hist(., freq=T, col="#FF00FF40", add=T)))

特にimportするべきはpipeRくらいです。

1つずつ説明

(.[, c("flg", "x_1")])

ここで、flgx_1の組だけ取ってくる

(~ (.[.$flg == 0,][,2]) %>>% (as.matrix(.)) %>>% (hist(., freq=T, col="#00FFFF40")))

ここで、pipeの1つの処理(~ hoge)の中にpipe処理が入ってる。
(頭に~がついているので、処理はこの中で完結し、後ろには上で2つの列にだけしたものが渡される)
更に見ていく。

(.[.$flg == 0,][,2])
ここで、flgの値が0の時のx_1の値のみ取り出している。

(as.matrix(.)) %>>% (hist(., freq=T, col="#00FFFF40")))
それをmatrixにし、histにぶち込む。
col属性で、色を指定。#RRGGBBAA形式(AAはalpha値)。

こんな感じで、1つめのhistgramの描画完了。

後半
(.[.$flg == 1,][,2] %>>% (as.matrix(.)) %>>% (hist(., freq=T, col="#FF00FF40", add=T)))

では、最後のhistの中にadd=Tを書き加えれば、新規のhistgram描画ではなく、前のところに書き加えてくれる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0