チャプター1 はじめに
1.1 R言語とは
R言語とは統計解析に特化したプログラミング言語です.Rには大きなコミュニティーが存在し,多くの教科書やオンラインのリソースがあるだけでなく,新しいパッケージが日進月歩開発されています.意外と汎用性もあるので,非常に魅力的な統計プログラミング言語です.
R以外にもStataやSPSSなどの統計ソフトウェアがあります.しかし,StataやSPSSは有料で非常に高額です.大学に在籍している間は使えますが,卒業してから企業で使うのは少し難しいです.対して,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 割り当て演算
<-
という割り当て演算子を用いることで,値をオブジェクトとして任意の名前に格納することができます.
<- 5
a
a## [1] 5
<- 4 + 6
b
b## [1] 10
+ b
a ## [1] 15
<- "LOVE"
kume
kume## [1] "LOVE"
1.3.4 ベクトル
c()
関数を用いて,ベクトルをつくることができます.c
とはcombineのcです.ベクトルとは値の連なりです.Rでは基本的にデータをベクトルとして扱います.ベクトルに含まれる値を要素(element)と呼びます.
<- c(1, 2, 3)
vector
vector## [1] 1 2 3
<- c("Kitagawa", "Saito", "Ryuman", "Takahashi")
tutors
tutors## [1] "Kitagawa" "Saito" "Ryuman" "Takahashi"
ベクトルに含まれる要素の個数を長さ(length)と呼びます.例えば,c(1, 2, 3)
というベクトルには3つの要素が含まれているので,このベクトルの長さは3です.ベクトルに含まれる要素の個数が大きくなってくると,ベクトルの長さを数えるのが大変です.length()
関数を用いれば,ベクトルの長さを簡単に確認できます.
<- c(1, 2, 3)
v length(v)
## [1] 3
あるオブジェクトがベクトルかどうかをis.vector()
関数を使って確認できます.次のコードを試してみましょう.
<- c(1)
a is.vector(a)
## [1] TRUE
<- 1
b is.vector(b)
## [1] TRUE
どちらもTRUE
と出力されますね.実は,c(1)
と1
は同じベクトルです.長さ1のベクトルをスカラーと呼ぶことにします.
1.3.5 ベクトルの演算
ベクトルとベクトルの演算を確認します.基本的に,順番が同じ要素の組について 計算して,その値を要素とする新たなベクトルが出力されます.
<- c(10, 10, 10)
x <- c(1, 2, 3)
y
+ y # 足し算
x ## [1] 11 12 13
- y # 引き算
x ## [1] 9 8 7
* y # 掛け算
x ## [1] 10 20 30
/ y # 割り算
x ## [1] 10.000000 5.000000 3.333333
^ 2 # 累乗
y ## [1] 1 4 9
sqrt(y) # 平方根
## [1] 1.000000 1.414214 1.732051
%*% y # 内積
x ## [,1]
## [1,] 60
ベクトルとスカラーの演算を確認します.ベクトルとスカラーの演算では,スカラーがベクトルの長さ分だけ繰り返されます.実際に試してみましょう.
<- c(1, 2, 3, 4, 5)
x - 3 x
## [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"
自分で関数を定義することもできます.
<- function(weight, height){
bmi <- weight / height^2
index return(index)
}bmi(70, 1.7)
## [1] 24.22145
1.3.6 csvファイルの読み込み
データセットのファイル形式はcsvであることが多いです.csvファイルはread.csv
関数で読み込むことができます.さらに,file.choose()
によって読み込むファイルをGUIで指定することができます.架空のデータセットwage.csv
を読み込みましょう.wage.csv
はここからダウンロードできます.
<- read.csv(file.choose()) mydata
データフレームが格納された名前を実行すると,そのデータフレームの中身を確認できます.しかし,データフレームの名前を実行すると,データフレームの中身が全て出力されるので見づらいです.head()
関数を用いれば,データフレームのはじめ数行だけを表示することができます.また,View()
関数を用いると,表形式でデータフレームの中身を確認することもできます.
mydatahead(mydata)
View(mydata)