![見出し画像](https://assets.st-note.com/production/uploads/images/101144255/rectangle_large_type_2_557d4e6e4a32d422fd432febaa8fcd1d.png?width=1200)
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の項目名、変数の型、データの最初の部分が表示されます。
![](https://assets.st-note.com/img/1679742181266-4R4GEBTNhs.png?width=1200)
"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)
"$"でデータフレームの中の変数を指定できます。
実行すると、結果が以下のように表示されます。
![](https://assets.st-note.com/img/1679743407932-gZyMp9to2a.png)
平均年齢は60.2歳、標準偏差は約9.9歳とわかりました。
なお"dat$"の部分は省略することができ、同じ結果が得られます。
# (datの)ageの平均を求める
mean(age)
# (datの)ageの標準偏差を求める。
sd(age)
これは先ほどのattach(dat)が「ここではdatのデータを使います」という指定になるため、いちいち"dat$"を書かなくてもわかるからです。
しかし同時に複数のデータセット(たとえば元データのサブグループ)の解析をするケースもあります。そのため解析対象を明示するためにあえて入れました。
最小値、最大値、四分位数を求める
最小値、最大値、四分位数を求めるには、quantile()関数を用います。
年齢で求めてみましょう
# datのageの最小値、最大値、四分位数を求める。
quantile(dat$age)
![](https://assets.st-note.com/img/1679744594326-XMmLDt8Qt2.png)
左から順に、最小値、第一四分位数、第二四分位数(中央値)、第三四分位数、最大値となります。
要素ごとに集計する
次に性別(sex)の項目で、男性(0)と女性(1)の人数を数えてみましょう。
table()関数を用います。
# datのsexを要素ごとに集計する
table(dat$sex)
実行すると以下のように表示されます。
![](https://assets.st-note.com/img/1679743784456-Y93VrlTkO5.png)
男性が10人、女性が10人とわかりました。
練習問題
理解度の確認のための簡単な練習問題を書いておきます。
"Rdata1.xlsx"の20人全員のデータについて、BH, BW, BMI, SMIそれぞれの平均、標準偏差、最小値、最大値、四分位数を求めよ。
今回は以上です。今後ともよろしくお願いします。
この記事が気に入ったらサポートをしてみませんか?