Rで中学校・高校のグラフを作る
統計ソフト R では以下のグラフを作ることが難しいです.
- 箱ひげ図(四分位数を教科書の定義で計算したバージョン)
 - 相対度数のヒストグラム
 
これらを行うことができる関数を作成しました.
使い方の例
箱ひげ図
source("http://www.math.chuo-u.ac.jp/~sakaori/statedu.R")
data(iris)
hako(Sepal.Width~Species, data=iris)
hako関数が, 中高で習う箱ひげ図を描く関数です. R 標準の boxplot 関数から,
- 四分位数を中高で学ぶ計算法に書き換え
 - ひげを最小値と最大値まで延ばす
 
という変更を施しています. それ以外は boxplot 関数と同じ使い方ができます. 例えば...
- 横向きにするなら 
horizontal=TRUEとオプションを付ける Sepal.Width~Speciesのような formula(量的変数~グループ分けしたい質的変数)だけでなく, 行列を投げ込むこともできます
などです.
なお, 四分位数を計算する関数として gosu(五数要約の意味)も作っていますので, gosu(iris$Sepal.Length)のようにすると四分位数が計算できます.
相対度数のヒストグラム
source("http://www.math.chuo-u.ac.jp/~sakaori/statedu.R")
data(iris)
histo(iris$Sepal.Width, type="percent")
    histo関数(通常の hist 関数に小文字のオーがついています)は、latticeパッケージの histogram関数を使いやすくしたものです. type="percent" とすると相対度数のヒストグラムになります. type="count" で度数、type="density" で密度のヒストグラム(総面積が1)です. lattice パッケージのインストールが必要なのでご注意ください.
    
histogram関数との違いは, 
- 色がビビッドで見にくいのをグレーに直した
 - 「◯以上◯未満」という階級のとり方をデフォルトにした(
right=FALSEが標準になっています) - formula を入れることも可能で, formula の書き方を箱ひげ図と統一
 
といったところです.
例えば histogram 関数では ~Sepal.Width|Speciesのような formula を入れると, 上の箱ひげ図と同じように層別したヒストグラムになるのですが, これを上の箱ひげ図と同じSepal.Width~Speciesで実現できるようにしました.
histogram関数特有の注意点として, breaks(階級の個数, あるいは階級の端点)を指定しないで描くと, スタージェスの公式に従って階級分けがなされ, その階級の端点はキリのよい数字にはなりません. breaks=8 などのオプションを付けると, キリのよいところで「ほぼ階級数8で」描いてくれます(階級数がちょうど8になるとは限りません. キリのよい数字になることが優先されます).