情報・統計処理
統計パート 第
3
回
臨床試験管理センター西山毅(たけし)
まずはベクトルをつくりましょう
ID=c("id1", "id2", "id3", "id4") Sex=c("m“, "f", "f", "m")
Age=c(18, 19, 19, 20)
Ht=c(160, 165, 170, 175)
ID , Sex :文字列型, Age, Ht :数値型
文字列型は引用符” “で文字を囲む
数値型は数字を書くだけ.引用符で囲む必要
ベクトルから一部を取り出すには
ID ベクトルの第 2 成分を取り出すには:ID[2]
ID[c(F, T, F, F)] ← TRUE のところだけ取り出せる
ID ベクトルの第 2 ・ 4 成分を取り出すには:
ID[c(2, 4)]
ベクトルから条件に合う成分を取り出すには
ID ベクトルから,” id3” の成分だけ取り出すには:
ID[ID==“id3”]
Sex ベクトルから,” m” の成分だけ取り出すには:
Sex[Sex==“m”]
Age ベクトルから, 18 の成分だけ取り出すには:
Age[Age==18]
Ht ベクトルから, 170 の成分だけ取り出すには:
Ht[Ht==170]
成分 の取り出し→
◯
X[X== ◯]
ベクトルから条件に合う成分を取り出すに
は
数値ベクトルでは,不等号も使えます
Age ベクトルで 19 才以上の成分を取り出すに
は:
Age[Age >=19]
Ht ベクトルで 170 より大きい成分を取り出すに
は:
Ht[Ht>170]
◯
以上→
X >= ◯
, 以下→
◯
X <= ◯
覚え方:イコールは不等
号の後◯
以上→
X >= ◯
, 以下→
◯
X <= ◯
覚え方:イコールは不等 号の後
◯
以上の成分の取り出し→
X[X >= ◯]
数値ベクトルでは,不等号を複数使えます
Age ベクトルで 18 才より大きく, 20 以下の成分の
取り出し:
Age[ (18 < Age) & (Age <=20)]
Ht ベクトルで 165 以下または 170 以上の成分の取り
出し:
Ht[ (Ht <= 165) | (170 <= Ht)]
ベクトルから条件に合う成分を取り出すに
は
A
かつ
B→A & B
A
または
B→A | B
やってみましょう
X = rnorm(100)
ベクトル X の中で,
① 0 以上の成分を取り出しましょう
② 0 以上, 1 以下の成分を取り出しましょう
③ -1.96 以下または 1.96 以上の成分の数は何個で
データフレームとはこういうものです
ベクトルをタテに並べたもの
まずはデータフレームをつくりましょう
ID=c("id1", "id2", "id3", "id4") Sex=c("m“, "f", "f", "m")
Age=c(18, 19, 19, 20)
Ht=c(160, 165, 170, 175)
d=data.frame(ID, Sex, Age, Ht)
こうやって作った変数 d の型(タイプ)を
データフレームと呼ぶ
データフレームから一部を取り出すには
d[3, ]→3 行目取り出し d[ , 2]→2 列目取り出し
d[
行の条件,列の条件
]
データフレームから一部を取り出すには
第 2 列を取り出すには
d[ , 2]
第 2 列と第 4 列を取り出すには
d[ , c(2, 4)]
第 3 行を取り出すには
d[3, ]
第 1 行と第 3 行を取り出すには
d[c(1, 3), ]
第
1
行・第
3
列を取り出すには
d[1, 3]
タテ方向
ヨコ方向
タテ
データフレームから
1
列取り出す別の方法
もし列の名前がわかっていればこのやり方もあり
Sex の列を取り出すには
d$Sex
Age の列を取り出すには
d$Age
このやり方はタテ方向(列)にしか使えません
列名 がわかっていれば,
◯
d$◯
で取り出せる
列名 がわかっていれば,
◯
データフレームから条件に合う
一部を取り出すには
Sex: “m” の行だけ取り出すには
d[c(1, 4), ]
だけじゃなく TRUE/FALSE を使うやり方もあり
d[c(T, F, F, T), ]
抜き出す行だけ
TRUE
にしても抜き出
せる
データフレームから条件に合う
一部を取り出すには
Sex の” m” の行だけ取り出すには,
d[c(T, F, F, T), ]
この TRUE/FALSE を条件式で作るには
d$Sex==“m”
組み合わせると,
d[d$Sex==“m” , ]
c (TRUE, FALSE, FALSE, TRUE)
Sex が” m” の行は TRUE, それ以外は FALSE のベクトル
c (TRUE, FALSE, FALSE, TRUE)
Sex が” m” の行は TRUE, それ以外は FALSE のベクトル
Sex が” m” である第 1 行と第 4 行だけ取り出される
データフレームから条件に合う
一部を取り出すには
男性( Sex==“m” )の身長を取り出すには,まず
d[d$Sex==“m”, ] で男性の全データを取り出せ
る
この中で身長の列だけ指定すれば良い
データフレームの読み込み方
普通は外のファイルを読み込んで作ります
カンマ区切りのテキストファイル =CSV ファイル
を読み込むには:
read.csv(“ ファイル名 .csv” )
demo.csv
ファイルを読み込みましょう
read.csv(“demo.csv”)
このままではデータがズラーッと表示され
るだけです.いったん変数
d
に代入して使
いましょう.
読み込んだデータ
d
はデータフレームです
本当に変数 d はデータフレームか確認するには:
class(d)
みなさんの課題は,出席番号 99 の人はウェブテ
キストの「第 3 回の課題」ページから, data99. csv をダウンロードして,読み込みます.
ウェブテキスト URL
https://sites.google.com/site/courseofr