# ←この記号の後は次の改行までコメントになります。
# データフレーム編 その2
# 統計解析で最も重要なデータ(患者データ・実験データなど)はRではデータフレームと
# して扱うことがほとんどです。すなわち、データフレーム操作に習熟することは、データ
# 操作の点でRの操作を学ぶことの必須項目と言えます。
# 今回は、データフレームにアクセスすることと、データフレームのデータの利用を練習します。
# 前回と同じデータフレームを利用します。まずは準備を、
dataset.lesson5<-
data.frame(
age=c(63,82,62,58,71,60,64,74,89,72),
sex=c("Male","Male","Female","Male","Female","Female","Male","Male","Male","Female"),
stage=ordered(c(1,3,2,2,4,1,3,2,2,3),labels=c("I","II","IIIa","IIIb")),
ethnicity=factor(c(rep("Japanese",4),"Chinese","Japanese","Korean",rep("Japanese",3)))
)
# summary関数を使って全体の記述統計量を表示します。
summary(dataset.lesson5)
## age sex stage ethnicity
## Min. :58.00 Female:4 I :2 Chinese :1
## 1st Qu.:62.25 Male :6 II :4 Japanese:8
## Median :67.50 IIIa:3 Korean :1
## Mean :69.50 IIIb:1
## 3rd Qu.:73.50
## Max. :89.00
# データフレームの中身にアクセスする方法その1
# attach関数を使ってデータフレームを現在の環境に付属させると、データフレームに
# 格納されたベクターに直接アクセスできるようになります。
attach(dataset.lesson5)
summary(ethnicity)
## Chinese Japanese Korean
## 1 8 1
# detach関数を使って、くっつけたデータフレームを切り離します。
detach(dataset.lesson5)
# データフレームの中身にアクセスする方法その2
# with関数をつかうと、with(...)の括弧の中だけはデータフレームの中にアクセスでき
# るようになります。
with(dataset.lesson5,ethnicity)
## [1] Japanese Japanese Japanese Japanese Chinese Japanese Korean
## [8] Japanese Japanese Japanese
## Levels: Chinese Japanese Korean
with(dataset.lesson5,summary(ethnicity))
## Chinese Japanese Korean
## 1 8 1
# データフレームの中身にアクセスする方法その3
# $を使って、DataFrame$Vectorと繋げることで、データフレームの中に格納された
# ベクターにアクセスできます。
dataset.lesson5$ethnicity
## [1] Japanese Japanese Japanese Japanese Chinese Japanese Korean
## [8] Japanese Japanese Japanese
## Levels: Chinese Japanese Korean
summary(dataset.lesson5$ethnicity)
## Chinese Japanese Korean
## 1 8 1
# データフレームの中身にアクセスする方法その4
# bracket [...]を使います。
# データフレームをスプレッドシートの行列とみなし、[行, 列]と指定することでアクセスできます。
# 4列目のethnicityを指定します。行を未指定にすることで、指定した列に含まれる全ての行を表示
# します。
dataset.lesson5[,4]
## [1] Japanese Japanese Japanese Japanese Chinese Japanese Korean
## [8] Japanese Japanese Japanese
## Levels: Chinese Japanese Korean
summary(dataset.lesson5[,4])
## Chinese Japanese Korean
## 1 8 1
summary(dataset.lesson5[,c(2,4)])
## sex ethnicity
## Female:4 Chinese :1
## Male :6 Japanese:8
## Korean :1
# 行を指定することも、行列を指定することもできます。
dataset.lesson5[2,]
## age sex stage ethnicity
## 2 82 Male IIIa Japanese
dataset.lesson5[2,4]
## [1] Japanese
## Levels: Chinese Japanese Korean
# 変数名で指定することもできます。
dataset.lesson5[,"ethnicity"]
## [1] Japanese Japanese Japanese Japanese Chinese Japanese Korean
## [8] Japanese Japanese Japanese
## Levels: Chinese Japanese Korean
summary(dataset.lesson5[,"ethnicity"])
## Chinese Japanese Korean
## 1 8 1
summary(dataset.lesson5[,c("sex","ethnicity")])
## sex ethnicity
## Female:4 Chinese :1
## Male :6 Japanese:8
## Korean :1
# 論理値で指定することもできます。
dataset.lesson5[,c(F,F,F,T)]
## [1] Japanese Japanese Japanese Japanese Chinese Japanese Korean
## [8] Japanese Japanese Japanese
## Levels: Chinese Japanese Korean
summary(dataset.lesson5[,c(F,F,F,T)])
## Chinese Japanese Korean
## 1 8 1
summary(dataset.lesson5[,c(F,T,F,T)])
## sex ethnicity
## Female:4 Chinese :1
## Male :6 Japanese:8
## Korean :1
# データフレームの中の一組のベクターを指定して、箱ひげ図を描いてみます。
attach(dataset.lesson5)
boxplot(age~sex)

detach(dataset.lesson5)
# ーーーーー 演習 ーーーーー
# データフレームの中身にアクセスする方法その2(with関数を使う),その3($を使う),
# その4(bracketを使う)を用いて、上記と同じように箱ひげ図を作図して下さい。