2. Rを使ってみる

データを格納するために、変数やベクトル、行列の取り扱いを理解しましょう。

2.1. 変数を理解する

値を保持させるものとして、英数字で変数を定義できる。 左矢印(に見えるかな?)で値を代入している(定義している)ことを示している。 その際、英字の大文字と小文字は別のものとして取り扱われることに注意せよ。

[操作] Sourceペイン(左上)に1行入力するごとに、「Ctrl+Enter」で実行する。 計算結果はConsoleペイン(左下)に表示される。以下では、薄い灰色部分が Sourceペインの入力を示している。このテキストからコピーペーストすれば手入力の手間を省くことができる。また、複数行を選択(ハイライト)後、 「Ctrl+Enter」をすると、複数行を一気に実行することができる。

なお、新たに定義された変数は、Environmentペイン(右上)に表示される。 また、シャープ記号(#)の後ろは「コメント」であり、Rの実行には無関係である。読者への説明用に記入してある。

a<-1  # 変数aに1を代入
b<-2  # 変数bに2を代入
A<-3  # 変数Aに3を代入
B<-4  # 変数Bに4を代入

a+b     # 変数aと変数bを足して答えは3
## [1] 3
A*b     # 変数Aと変数bをかけて答えは6
## [1] 6
A/B     # 変数Aを変数Bで割って答えは0.75
## [1] 0.75
sqrt(A) # 変数Aの平方根は1.732
## [1] 1.732051

5人の身長の平均を求めてみよう

皆さんのアンケートの中から、任意の5人を抽出して、 この5人のデータに対する処理方法を紹介する。

X1<-179
X2<-175
X3<-163
X4<-165
X5<-181
Xgoukei<-X1+X2+X3+X4+X5
Xheikin<-Xgoukei/5            # 単純計算で求める(方法1)
Xheikin
## [1] 172.6
Xvec<-c(179,175,163,165,181)  # 要素数5のベクトルの定義
mean(Xvec)                    # ベクトルの要素の平均値を求める(方法2)
## [1] 172.6

では、体重の平均値を求めてみてください。

Y1<-87
Y2<-58
Y3<-65
Y4<-61
Y5<-67

[演習] この続きを各自で完成させよ。

Yvec<-c(87,58,65,61,67)
mean(Yvec)
## [1] 67.6

【要点】

Xvec[1]   # 1番目の要素の値は 179
## [1] 179
Yvec[5]   # 5番目の要素の値は 67
## [1] 67

2.2. 行列の利用

統計では、縦方向にサンプル(1人目、2人目、…)を、 横方向に変量(身長、体重等)を2次元的に配置して分析に供することが一般的である。

ベクトルを横方向に連結して行列を作る。ここでは取り上げないが、サンプルを追加する場合は、縦方向に連結することになる。

XYmatrix<-cbind(Xvec,Yvec)
XYmatrix
##      Xvec Yvec
## [1,]  179   87
## [2,]  175   58
## [3,]  163   65
## [4,]  165   61
## [5,]  181   67

特定の要素の値を参照するには角括弧で要素番号を指定する。

XYmatrix[1,1]   # (1,1)の要素の値は179
## Xvec 
##  179
XYmatrix[5,2]   # (5,2)の要素の値は67
## Yvec 
##   67
XYmatrix[,1]    # 2次元目が1の要素を順に表示(身長を全部表示)
## [1] 179 175 163 165 181
XYmatrix[3,]    # 1次元目が3の要素を順に表示(3人目の要素を全部(身長と体重)表示)
## Xvec Yvec 
##  163   65

1列目(身長)と2列目(体重)の平均値を求める。

mean(XYmatrix[,1])
## [1] 172.6
mean(XYmatrix[,2])
## [1] 67.6

2.3. 便利な関数: seq(), rep()

今後(次節でも)利用する関数を紹介しておく。 単体では「ありがたみ」が判らないと思うが。

seq(1:10)       # 1から10まで10個の要素のベクトルを生成(1つずつ順に))
##  [1]  1  2  3  4  5  6  7  8  9 10
seq(10,100,10)  # 10から100まで10飛ばしで10個の要素のベクトルを生成
##  [1]  10  20  30  40  50  60  70  80  90 100
rep(3,8)        # 3を8回繰り返す
## [1] 3 3 3 3 3 3 3 3
rep(4:6,3)      # {4,5,6}のベクトルを3回繰り返す
## [1] 4 5 6 4 5 6 4 5 6

【思い】このページではRにおけるベクトルと行列の取り扱いや概念を習得してほしい。