dot plotには平均値と標準偏差を同時に記述することが多いので、今回もその慣例に従いました。
参考にさせていたいたのは下のリンクです。
http://minato.sip21c.org/swtips/MedicalStat-Rev.pdf
まずは、以下のデータをEXELで用意して、tab区切り形式で保存します。
あとはRを開いて以下のコマンドを実行すればよいです。
$ R
#データの読み込み
> dat <- read.table("body_height.txt", header=T)
> dat <- as.data.frame(dat)
> dat
Male Sex
1 170 1
2 175 1
3 181 1
4 176 1
5 167 1
6 180 1
7 156 2
8 150 2
9 153 2
10 148 2
11 157 2
12 149 2
#Sex列を要因(factor)にする
> dat$Sex <- as.factor(dat$Sex)
> levels(dat$Sex) <- c('M','F')
> dat
Male Sex
1 170 M
2 175 M
3 181 M
4 176 M
5 167 M
6 180 M
7 156 F
8 150 F
9 153 F
10 148 F
11 157 F
12 149 F
#各列名単独で列の要素にアクセスできるようにする
> attach(dat)
#平均値、標準偏差を計算
> mean <- tapply(Height,Sex,mean)
> sd <- tapply(Height,Sex,sd)
> is <- c(1,2)+0.15
#ドットプロットを描写
> stripchart(dat$Height~Sex,method="jitter",vert=T,ylab="body height(cm)")
> points(is,mean,pch=18)
> arrows(is,mean-sd,is,mean+sd,code=3,angle=90,length=.1)