upaksta’s blog

忘れないうちにメモする備忘録です

Rで箱ひげ図をかく

統計ソフトのRを使って、箱ひげ図を作成。

データはRに入ってるmtcarsというデータセットを用いた。

中身は11個の変数に対してそれぞれ32個のデータがある。

> str(mtcars)
'data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...

このデータの変数amは、0か1の値をとる。(オートマ=0、マニュアル=1)

この0と1でデータを分けて、それぞれの箱ひげ図を作成し、両者を比較する。

まずRに標準で入ってる【plot()関数】を使ってみる。

> plot(mtcars$am, mtcars$mpg)

f:id:upaksta:20140921210724j:plain

plot(x, y)のxにam変数、mpgをyに指定した。箱ひげ図にならなかった。

plot(x,y)のxに対応するmtcars$amは数値データ型。

数値データをxに使っても箱ひげ図にはならない。

因子型に変換してplot関数に入れると自動的に箱ひげ図になる。因子型に変換するために、factor()関数を使った。

> plot(factor(mtcars$am), mtcars$mpg)

 

f:id:upaksta:20140921205451j:plain

図の軸に名前をつける。xlab, ylabを使って指定。

> plot(factor(mtcars$am), mtcars$mpg, xlab="Transmission (0 = automatic, 1 = manual)", ylab="Miles per gallon")

f:id:upaksta:20140921210526j:plain

他にもいろいろ変えれると思いますが、plot関数で箱ひげ図は一応できました。

もう一つ練習してみます。

mtcarsデータのvsは0と1の数値をとっていて、

このvsとhp(馬力:Gross horsepower)について箱ひげ図を作成してみる。

> plot(factor(mtcars$vs), mtcars$hp, xlab="vs", ylab="Gross horsepower")

f:id:upaksta:20140921212011j:plain