チャプター1 はじめに

1.1 R言語とは

R言語とは統計解析に特化したプログラミング言語です.Rには大きなコミュニティーが存在し,多くの教科書やオンラインのリソースがあるだけでなく,新しいパッケージが日進月歩開発されています.意外と汎用性もあるので,非常に魅力的な統計プログラミング言語です.

R以外にもStataSPSSなどの統計ソフトウェアがあります.しかし,StataSPSSは有料で非常に高額です.大学に在籍している間は使えますが,卒業してから企業で使うのは少し難しいです.対して,Rは無料です.なので,長く安心して使うことができます.

たまに,PythonとR,どちらを使えばいいですかという質問が来ます.その答えは両方です.Pythonの方が汎用性は圧倒的にありますし,とりわけ機械学習などに興味がある場合はPythonの方が便利でしょう.しかし,Pythonで計量分析を行うとなると,Rに比べてコーディングが冗長になるきらいがあります.なので,データを扱う仕事に興味があるのなら,両方を学ぶようにすることが無難です.

1.2 RStudioとは

RStudioとはRのための統合開発環境(IDE)です.IDEとは簡単に言えば,コードを書きやすくするための道具です.単に「R」と言うときは,RStudioを指していることが多いです.

1.3 基本操作

1.3.1 四則演算

簡単な計算から始めましょう.コードが書けたら,Windowsの場合はCtrl + Enter,Macの場合はCommand + Returnを入力することで実行(Run)することができます.

1 + 1   # 足し算
## [1] 2
5 - 10  # 引き算
## [1] -5
9 * 9   # 掛け算
## [1] 81
2 / 3   # 割り算
## [1] 0.6666667

2 ^ 4   # 累乗
## [1] 16
sqrt(9) # 平方根
## [1] 3

1.3.2 文字列

ダブルクォーテーションマークを使って,文字列を扱うことができます.

"Hello, World!"
## [1] "Hello, World!"
"We love Ikuo"
## [1] "We love Ikuo"
"久米ゼミ"
## [1] "久米ゼミ"

1.3.3 割り当て演算

<-という割り当て演算子を用いることで,値をオブジェクトとして任意の名前に格納することができます.

a <- 5
a
## [1] 5

b <- 4 + 6
b
## [1] 10

a + b
## [1] 15

kume <- "LOVE"
kume
## [1] "LOVE"

1.3.4 ベクトル

c()関数を用いて,ベクトルをつくることができます.cとはcombineのcです.ベクトルとは値の連なりです.Rでは基本的にデータをベクトルとして扱います.ベクトルに含まれる値を要素(element)と呼びます.

vector <- c(1, 2, 3)
vector
## [1] 1 2 3

tutors <- c("Kitagawa", "Saito", "Ryuman", "Takahashi")
tutors
## [1] "Kitagawa"  "Saito"     "Ryuman"    "Takahashi"

ベクトルに含まれる要素の個数を長さ(length)と呼びます.例えば,c(1, 2, 3)というベクトルには3つの要素が含まれているので,このベクトルの長さは3です.ベクトルに含まれる要素の個数が大きくなってくると,ベクトルの長さを数えるのが大変です.length()関数を用いれば,ベクトルの長さを簡単に確認できます.

v <- c(1, 2, 3)
length(v)
## [1] 3

あるオブジェクトがベクトルかどうかをis.vector()関数を使って確認できます.次のコードを試してみましょう.

a <- c(1)
is.vector(a)
## [1] TRUE

b <- 1
is.vector(b)
## [1] TRUE

どちらもTRUEと出力されますね.実は,c(1)1は同じベクトルです.長さ1のベクトルをスカラーと呼ぶことにします.

1.3.5 ベクトルの演算

ベクトルとベクトルの演算を確認します.基本的に,順番が同じ要素の組について 計算して,その値を要素とする新たなベクトルが出力されます.

x <- c(10, 10, 10)
y <- c(1, 2, 3)

x + y # 足し算
## [1] 11 12 13
x - y # 引き算
## [1] 9 8 7
x * y # 掛け算
## [1] 10 20 30
x / y # 割り算
## [1] 10.000000  5.000000  3.333333

y ^ 2 # 累乗
## [1] 1 4 9
sqrt(y) # 平方根
## [1] 1.000000 1.414214 1.732051

x %*% y # 内積
##      [,1]
## [1,]   60

ベクトルとスカラーの演算を確認します.ベクトルとスカラーの演算では,スカラーがベクトルの長さ分だけ繰り返されます.実際に試してみましょう.

x <- c(1, 2, 3, 4, 5)
x - 3
## [1] -2 -1  0  1  2

1.3.5.1 関数

関数を用いることで,さまざまな演算を行うことができます.平方根を求める際に用いたsqrt()も関数の一つです.一般に,関数はf(x)の形をしています.関数の中に入れる値x引数(argument)と呼びます.指定された引数にしたがって,関数は値を出力します.その出力される値のことを戻り値(return value)と呼びます.関数の例をいくつか見てみましょう.

sqrt(100)    # 引数の平方根を出力
## [1] 10
round(5.555) # 丸め
## [1] 6
date()       # 日時
## [1] "Fri Jun  3 21:18:55 2022"

自分で関数を定義することもできます.

bmi <- function(weight, height){
  index <- weight / height^2
  return(index)
}
bmi(70, 1.7)
## [1] 24.22145

1.3.6 csvファイルの読み込み

データセットのファイル形式はcsvであることが多いです.csvファイルはread.csv関数で読み込むことができます.さらに,file.choose()によって読み込むファイルをGUIで指定することができます.架空のデータセットwage.csvを読み込みましょう.wage.csvはここからダウンロードできます.

mydata <- read.csv(file.choose())

データフレームが格納された名前を実行すると,そのデータフレームの中身を確認できます.しかし,データフレームの名前を実行すると,データフレームの中身が全て出力されるので見づらいです.head()関数を用いれば,データフレームのはじめ数行だけを表示することができます.また,View()関数を用いると,表形式でデータフレームの中身を確認することもできます.

mydata
head(mydata)
View(mydata)

1.3.7 サブセッティング

Rでは,データセットをデータフレームとして扱います.データフレームの(column)には名前が付いています.その列名を変数名と呼ぶこともあります.列名を見るにはcolnames()関数が便利です.

colnames(mydata)
## [1] "X"      "salary" "educ"   "abili"  "iq"     "female" "age"    "exper"

データフレームの中から,ある変数(列)だけを取り出したい場合があります.その際には,$というサブセッティング演算子を用います.salaryという変数だけを取り出してみましょう.

mydata$salary