4. Rで扱うデータ

Rで扱う変数には、複数の形式があります。扱う分析によって適したデータ形式があることに注意が必要です。

1.1 スカラー

単一の値が代入された変数をスカラーと呼びます。

In [ ]:
x = 10 #変数xに値”10”を代入する
x #変数xの確認

4.2 ベクトル

ベクトルは複数の値が代入された変数を指し、c関数で作成します。

In [ ]:
x = c(1,2,4) #変数xに複数の値を代入する
x #変数xの確認

4.3. 行列 質的変数だけ,あるいは量的変数だけの場合にはデータ全体を行列の形で扱います。Rでは以下の手順で行列を作成する.

  1. 行列の要素をベクトル(配列やリスト,行列でも可)で用意する
  2. 関数 matrix(行列の要素, nrow = 行の数, ncol = 列の数)
In [ ]:
x = matrix(1:6, nrow=2, ncol=3) #ベクトル(1,2,3,4,5,6)を変換して,行列を作成する
x

行列はmatrix関数を利用する以外にも、個別のベクトルを組み合わせることも出来ます。

In [ ]:
x = cbind(1:3, 4:6) #複数のベクトルを縦方向に挿入する(列ベクトル)
y = rbind(1:3, 4:6) #複数のベクトルを横方向に挿入する(行ベクトル)
x
y

4.4 データフレーム

質的変数と量的変数が混在したデータの場合にはデータフレームを使用することになります。 データフレームの各列は一つの変数として認識され、それぞれの列の変数の型(数値や文字)は異なってよいことを意味しています。またデータフレームの各行は、例えば1サンプルの観測地として認識されます。データフレームを作成する方法は以下のような方法があります。

  1. ベクトル(行列やリスト)からデータフレームを作成する data.frame(列名1 = ベクトル1, 列名2 = ベクトル2, …)
  2. ファイルにあるデータを読み込んでデータフレームを作成する

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

「性別」「身長」「体重」データをベクトルで用意し、それらを関数data.frame()でひとつのデータフレームに変換してみましょう。

In [ ]:
sex = c("F","F","M","M","M")
height = c(150,155,170,175,180)
weight = c(50,55,70,75,80)
x = data.frame(SEX=sex, HEIGHT=height, WEIGHT=weight)
x

ファイルにあるデータを読み込んでデータフレームを作成する

またファイルにあるデータを読み込んでデータフレームを作成することもできます。ここではcsvファイルに入っているデータを、データフレームとしてRに読み込む方法を紹介します。5名の性別・身長・体重についてのサンプルデータです。

作業ディレクトリを変更していない場合

作業ディレクトリを変更していない場合は、初期の作業ディレクトリにファイルを保存するか、 ファイルのパスを指定して読み込む必要があります。

In [ ]:
(x = data.frame(SEX=sex, HEIGHT=height, WEIGHT=weight))

csvファイルの場合

図4-1 csvファイル

csvファイルを読み込む場合には、read.csv関数を使います。

In [ ]:
#作業ディレクトリの処理は既に行っていれば不要(復習)
getwd() #作業ディレクトリの確認
setwd("R:/WinPython/WinPython-64bit-3.6.1.0Qt5/notebooks/data") #作業ディレクトリの変更
In [ ]:
(data = read.csv("4-1.csv", header =TRUE))
#(data = read.csv("sample1.csv", header =FALSE)) #行頭に変数名がない場合 header = FALSE

txtファイルの場合

図4-2 txtファイル

タブ区切りのテキストファイル(.txt)を読み込む場合には、read.table関数を使います。

In [ ]:
(data = read.table("data/4-2.txt", header =TRUE))

コピー&ペーストによる取り込み

取り込みデータを選択してコピーすることでもデータを取り込むことが出来ます。まず、読み込みたい部分を選択してクリップボードにコピーします。

図4-3 csvファイルのMicrosoft Excel上でのコピー画面

次にRのコンソール画面でread.delim関数を実行します。

In [ ]:
(data = read.delim("clipboard", header = TRUE))

Excelのデータをそのまま読み込む パッケージgdata

Excelファイルを読み込むには特別なパッケージ(Ex. gdataパッケージ、readxlパッケージ、xlsxパッケージ)が必要になります。本テキストでは省略します。

4.5 その他の注意事項

Rでは欠損値をNAで扱う

Rではデフォルトの欠損値コーディングとしてNAが割り当てられています。そのため、扱うデータに欠損値が含まれている場合はNAをあてれば,データの読み込みに際してついかの処理は必要ありません。

Rは大文字と小文字を区別

Rは大文字と小文字を区別するので、変数”x”と変数は”X”は別の変数として扱われます。

代入の式を丸カッコ()で囲む

代入の式を丸カッコ()で囲んで実行すると、代入と表示が同時に実行されます。

数学関数をベクトルに使うと各要素の計算結果が表示される

数学演算用の関数(“sin”など)をベクトルに使うと、ベクトルの各要素・値に関数を当てはめた結果が表示されます。