チャプター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.3.2 文字列

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

1.3.3 割り当て演算

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

1.3.4 ベクトル

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

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

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

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

1.3.5 ベクトルの演算

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

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

## [1] -2 -1  0  1  2

1.3.5.1 関数

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

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

1.3.6 csvファイルの読み込み

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

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

1.3.7 サブセッティング

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

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