見出し画像

Rで基本的な統計量を求める。

東京大学医学部老年病科の矢可部です。

基礎、臨床研究の統計解析でRを用いています。

学生や研修医の指導に使うという目的もあり、noteに記事を書いています。

前回の記事はこちらです。

今回は、Rに読み込んだデータで基本的な統計量を計算します。


サンプルデータ

この記事で扱うデータが入った"Rdata1.xlsx"ファイルは、下からダウンロードできます。なおこれは前回の記事で用いたものと同じなので、すでにダウンロードした方は不要です。

str()でデータ構造を確認

まずはRにデータを読み込みます。ここではMacで行います。
Windowsでのやり方を含めて詳しく知りたい方は、上にある前回の記事をご覧ください。

dat <- read.table(pipe("pbpaste"), sep="\t", header=T)
attach(dat)

ここで、str()関数を用います。

# datの構造を表示する
str(dat)

 以下のように、データフレームであるdatの項目名、変数の型、データの最初の部分が表示されます。

"20 obs. of 8 variables"とあるのは、8の変数に20のobservations(観測値、ここでは患者)があるという意味です。

変数の型として、intはinteger(整数)、chrはcharacter(文字列)、numはnumeric(小数)を意味します。

平均と標準偏差を求める

datで、各項目の平均と標準偏差を求めてみましょう。

平均はmean()関数、標準偏差はsd()関数で求めます。

年齢(age)の場合、以下のように入力します。

# datのageの平均を求める
mean(dat$age)

# datのageの標準偏差を求める。
sd(dat$age)

"$"でデータフレームの中の変数を指定できます。

実行すると、結果が以下のように表示されます。

平均年齢は60.2歳、標準偏差は約9.9歳とわかりました。

なお"dat$"の部分は省略することができ、同じ結果が得られます。

# (datの)ageの平均を求める
mean(age)

# (datの)ageの標準偏差を求める。
sd(age)

これは先ほどのattach(dat)が「ここではdatのデータを使います」という指定になるため、いちいち"dat$"を書かなくてもわかるからです。

しかし同時に複数のデータセット(たとえば元データのサブグループ)の解析をするケースもあります。そのため解析対象を明示するためにあえて入れました。

最小値、最大値、四分位数を求める

最小値、最大値、四分位数を求めるには、quantile()関数を用います。

年齢で求めてみましょう

# datのageの最小値、最大値、四分位数を求める。
quantile(dat$age)

左から順に、最小値、第一四分位数、第二四分位数(中央値)、第三四分位数、最大値となります。

要素ごとに集計する

次に性別(sex)の項目で、男性(0)と女性(1)の人数を数えてみましょう。

table()関数を用います。

# datのsexを要素ごとに集計する
table(dat$sex)

実行すると以下のように表示されます。

男性が10人、女性が10人とわかりました。

練習問題

理解度の確認のための簡単な練習問題を書いておきます。

"Rdata1.xlsx"の20人全員のデータについて、BH, BW, BMI, SMIそれぞれの平均、標準偏差、最小値、最大値、四分位数を求めよ。

今回は以上です。今後ともよろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?