群馬大学 | 医学部 | サイトトップ | 医学情報処理演習

医学情報処理演習:2009年度第2回課題の解答例

課題

http://phi.med.gunma-u.ac.jp/medstat/sample02.txtは,第1回に入力してもらったデータを元にして修正・追加した後,成人の欠損がない人に限定し,未発表データであることと個人情報保護のため適当に改変し,変数も減らした架空のデータである(が,まったくデタラメというわけでもない)。変数の意味は下表の通りである。

変数名意味
AGE年齢
SEX性別(F:女性,M:男性)
BMIBody Mass Index(kg単位の体重をm単位の身長の2乗で除した値)
PH尿のpH
SG尿比重
MARITAL婚姻状態(Married:既婚,Single:未婚,Divorced:離婚,Widowed:寡婦/寡夫)
FEVER発熱経験(1:3日以内,2:1週間以内,3:1ヶ月以内,4:それ以前)
CQクロロキン服用経験(1:3日以内,2:1週間以内,3:それ以前,4:飲んだことがない)
BEDNET蚊帳使用状況(1:毎日使用,2:時々使用,3:使ってない,4:持っていない)
BSUGAR随時血糖(mg/dL)
HBヘモグロビン(g/dL)
SBP収縮期血圧(mmHg)。2回の測定値の平均値
DBP拡張期血圧(mmHg)。2回の測定値の平均値
HR心拍数(拍/分)。2回の測定値の平均値

このデータをRに読み込み,次の2種類の図示をせよ。

  1. BMIの分布
  2. 年齢と収縮期血圧の関係を示す散布図。可能なら性別に記号を変えること。記号を変えた散布図の表示については,テキスト第12章のc12-6.R(本ではp.194,pdfではp.214)が参考になる。

解答は,(1)(2)の図示をするコードを下の解答フォーム内に追記(コピーペースト)して,送信(send)ボタンをクリックすることで行われる。学籍番号と氏名を忘れないこと。

解答例

dat <- read.delim("http://phi.med.gunma-u.ac.jp/medstat/sample02.txt")
attach(dat)
windowsFonts(JP1=windowsFont("MS Gothic"),JP2=windowsFont("MS Mincho"))
par(family="JP1")
layout(t(1:2))
hist(BMI,right=F,main="ソロモン諸島住民のBMIの分布")
rg <- c("red","green")
plot(AGE,SBP,pch=paste(SEX),col=rg[as.integer(SEX)],
xlab="年齢(歳)",ylab="収縮期血圧 (mmHg)",
main="ソロモン諸島住民の年齢と収縮期血圧の\n 関係(男女別)")
legend("bottomright",pch=names(table(SEX)),col=rg,legend=c("女性","男性"))
detach(dat)
第2回課題解答例の図

最小限必要なのは,1行目のデータの読み込み,2行目のattach()と12行目のdetach(),6行目のhist()でBMIのヒストグラムを書くこと,8行目からのplot()で年齢と収縮期血圧の関係を示す散布図を描くことである。

ただし解答例では男女別にプロットの記号と色を変えているので(講義中には示せなかったが,プロット記号を任意の色に変えるには,このようにする),plot()の中が複雑になっている。最低限ならば,plot(AGE,SBP)とするだけで,横軸をAGE,縦軸をSBPとする散布図は描ける。同様に,hist()の中も,最低限ならば変数名だけ,すなわちhist(BMI)でよい。また,attach()〜detach()で囲まずに,関数内で一々"dat$"を変数の頭につける指定方法でも構わない。3行目と4行目は,講義中にも触れたが,メタファイルにコピーした後でPowerPointに貼り付けて「グループ解除」して編集するときなどに日本語が文字化けしないようにするための「おまじない」である。


リンクと引用について