2.4 Rの基本操作

ここでは、Rを使用する上での基本的な操作方法を紹介する。Rはコマンド(命令)をconsoleを通じて実行することで動かすことができる。例えば四則演算であれば、以下のように命令し、計算が実行できる。

1 + 2
## [1] 3
5 - 10
## [1] -5
3 * 8
## [1] 24
1/2
## [1] 0.5

基本的に一つのコマンドは1行に書き、数字、演算記号、スペースは半角で入力する。以下は、べき乗、平方根、自然対数を計算するためのコマンドで計算できる。

2^3
## [1] 8
sqrt(2)
## [1] 1.414214
log(2)
## [1] 0.6931472

Rは、ベクトルや行列の計算も可能である。c() という関数を用いると、ベクトルを作成できる。例えば、c(1, 3, 5) というコマンドによって(1, 3, 5)というベクトルが作成できる。作成したベクトルを使って以下のような計算も可能である。

c(1, 3, 5) + 1
## [1] 2 4 6

ベクトルは、連続した数字の列を生成するための演算子である : を用いても作成することができる。例えば、1から100の整数を要素とするベクトルは以下のように作成することが可能である。

1:100
##   [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
##  [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36
##  [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54
##  [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72
##  [73]  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
##  [91]  91  92  93  94  95  96  97  98  99 100

また、ベクトルの要素は文字列でも構わない。

cities <- c("Tokyo","Osaka","Kobe")
cities
## [1] "Tokyo" "Osaka" "Kobe"

上記の計算方法に加え、Rが持つ重要な特徴に、オブジェクトの定義がある。Rでは、任意の行列、ベクトル、数値などに名前をつけ定義したうえで、それを用いた計算を行うことができる。なお、Console上で以下のように定義(実行)したオブジェクトはenvironmentタブ内に表示されるため、各自確認をしてほしい。なお、定義したオブジェクトの確認・出力も簡単に行えるが、大文字と小文字は区別されるため、注意が必要である。

a <- 1
b <- 2

a
## [1] 1
A
## Error in eval(expr, envir, enclos): object 'A' not found

また、定義したオブジェクトを用いた計算も実行できるため、各自以下の計算を実行し、結果を確認してほしい。

a + b 
a / b 
a ^ b

なお、先程のベクトル操作と組み合わせ、ベクトル名 [i] とすることで、ベクトルの i 番目の要素にアクセスすることができる。例えば、以下のaとbというベクトルから特定の要素を取り出すことを考える。なおこの場合、同時に複数の要素を取り出すこともできる。

a <- seq(10, 100, length = 10)
b <- 10:1
  • aの2番目の要素
a[2]
## [1] 20
  • bの2番目の要素
b[2]
## [1] 9
  • aの3-5番目の要素
a[3:5]
## [1] 30 40 50
  • aの1,3,5番目の要素
a[c(1,3,5)]
## [1] 10 30 50

分析で繰り返し必要になる機能がRで使えないときは、function()関数を使って、新たな関数を作成できる。例えば、最大値と最小値を並べて表示したい場合を考える。そのために、ここでは ‘mm’ という新たな(オブジェクトxの最小値と最大値で構成されるベクトルを返す)関数を作ってみる。

mm <- function(x){
  c(min(x), max(x))
}

そして上記の関数を利用して、以下のオブジェクト a, b の最小値と最大値を出力する。

a <- c(1, 5, 100, 2, -8, 7)
b <- c(1, 6, 8, 0, 120)

mm(a)
## [1]  -8 100
mm(b)
## [1]   0 120

しかし、すべての関数を自作するのは難しい。Rでは様々な計算を実行するための関数が用意されており、多くのマーケティング研究においては既存の関数を用いることで対応が可能である。実は上記のmm関数の中で使っている “min”や”max”も、それぞれ最小値と最大値を返す関数である。他にも例えば、meanや median があり、これらはそれぞれ平均値と中央値を計算するための関数である。

関数の利用においては例えば、’f()’のように関数名’f’のあとにカッコをつけて表記する。()の中には、引数(arguments)を用い、計算に必要な情報を指定することが必要となる。例えば、seq()という関数を用いて、2以上20以下の偶数の数列(sequence)を作ることが可能である。以下では、二通りの表記を提示するが、どちらも同じ結果を返す。

seq(from = 2, to = 20, by = 2)
##  [1]  2  4  6  8 10 12 14 16 18 20
seq(2, 20, 2)
##  [1]  2  4  6  8 10 12 14 16 18 20

特定の関数に対する引数を確認したい場合は ‘?関数名’とconsoleに命令することで確認が可能になる。例えば、seq関数について知りたければ、’?seq’ で確認できる。

Rに元から含まれている関数以外にも他者が開発してくれた関数も存在する。そしていくつかの関数をまとめたpackagesが多数存在する。これまで世界中の開発者たちが作成したパッケージを公開してくれている。パッケージは何らかの目的や課題を達成することを目的に構成されたコードライブラリであり、それらをインストールし、各セッションごとに起動することで利用できる。

CRANで公開されているパッケージは、install.packages()でインストール可能である。また、Rstudio の場合、ペインからpackagesタブ\(\rightarrow\)Install\(\rightarrow\)パッケージ名の入力という手順でもインストールが可能である。そしてインストール済パッケージは、library() によって起動することで、活用可能にある。ここで注意しておきたいのは、library()によるパッケージの起動はセッションごとに実行しないといけないという点である。まずは以下の通り、本講義で用いる “tidyverse” パッケージをインストールし起動してみる。“tidyverse”は、複数のパッケージから構成されているパッケージであり、データの整形・分析を行うために役立つ複数のパッケージをまとめてインストール・起動できる。

install.packages("tidyverse")
library("tidyverse")