Rの基本操作

1ページ 2ページ 3ページ

名義尺度のベクトル

名義尺度のベクトル:曜日を入力する

曜日や場所など、種類を区別するためのデータを「名義尺度」と呼びます。例えば、月曜日と火曜日は異なる曜日ですが、数値のように大小を比較するものではありません。まず、6日間の曜日を入力してみましょう。文字を入力するときは、それぞれを半角の引用符「”」で囲みます。見た目が似ている“ や”は使わないでください。

R
day <- c("月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
print(day)
> day <- c("月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
> print(day)
[1] "月曜日" "火曜日" "水曜日" "木曜日" "金曜日" "土曜日"

カテゴリとして扱う:factor()
上のコードで作成した day は、「文字型」のベクトルです。曜日などの分類を表すデータを、Rでは「ファクター型」として扱うことができます。

JavaScript
day <- factor(
  day,
  levels = c("月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
)
print(day)
[1] 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日
Levels: 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日

factor() は、データをファクター型に変換する関数です。levels では、カテゴリの一覧と表示順を指定しています。

順序のあるカテゴリの場合
「軽度・中等度・重度」のように、カテゴリに順序があるデータを「順序尺度」と呼びます。順序も含めて扱う場合は、levels で順番を指定し、ordered = TRUE を加えます。

JavaScript
severity <- c("軽度", "重度", "中等度")
severity <- factor(
  severity,
  levels = c("軽度", "中等度", "重度"),
  ordered = TRUE
)

※ 曜日を月曜日から順に表示することと、重症度のような大小の順序を持たせることは異なります。

血圧や身長など、数値の大きさや差に意味があるデータは、通常は数値型のまま扱います。

データフレーム:複数のベクトルを表にまとめる

Rでは、Excelの一覧表のように、行と列でデータをまとめたものを「データフレーム」と呼びます。これまでに作成したベクトルを、それぞれ表の1列としてまとめてみましょう。

例:歩行練習前後の血圧を表にする
患者Aさんの収縮期血圧を、月曜日から土曜日までの6日間、歩行練習の前後に測定したとします。ここでは、練習した曜日・時間帯・場所も記録した架空のデータを使います。

  • pre:歩行練習前の血圧(mmHg)
  • post:歩行練習後の血圧(mmHg)
  • day:曜日
  • time:時間帯(AM:午前、PM:午後)
  • place:歩行練習の場所(屋外、室内)

ベクトルからデータフレームを作る

まず、それぞれのデータを月曜日から土曜日の順に入力します。

R
pre <- c(112, 138, 124, 120, 136, 142)
post <- c(138, 139, 136, 130, 143, 140)
day <- c("月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
time <- c("AM", "PM", "AM", "AM", "PM", "PM")
place <- c("屋外", "室内", "室内", "室内", "屋外", "室内")

次に、data.frame() を使って、5つのベクトルを一つの表にまとめます。作成した表は、data という名前で保存します。

R
data <- data.frame(pre, post, day, time, place)
print(data)
> print(data)
  pre post    day time place
1 112  138 月曜日   AM  屋外
2 138  139 火曜日   PM  室内
3 124  136 水曜日   AM  室内
4 120  130 木曜日   AM  室内
5 136  143 金曜日   PM  屋外
6 142  140 土曜日   PM  室内

この表は、1行が1日分の記録、1列が一つの変数に対応しています。同じ行のデータが同じ日の記録になるように、各ベクトルの値の順番と個数をそろえてください。

Excelのような表形式で確認するには、View() を使います。

JavaScript
View(data)

データフレームから1列を取り出す:`$`
データフレームから特定の列をベクトルとして取り出すには、`$` を使います。`データフレーム名$列名` の形で入力します。

JavaScript
pre_2 <- data$pre
print(pre_2)
mean(pre_2)
sd(pre_2)
> print(pre_2)
[1] 112 138 124 120 136 142
> mean(pre_2)
[1] 128.6667
> sd(pre_2)
[1] 11.77568

data$pre:表 data から、歩行練習前の血圧が入った pre 列を取り出します。
pre_2 <- data$pre:取り出したデータを、pre_2 という名前で保存します。
print(pre_2):保存したデータを表示します。
mean(pre_2):平均値を求めます。
sd(pre_2):値のばらつきを表す「標準偏差」を求めます。

タイトルとURLをコピーしました