他のプログラミング言語と同様に,Rにも豊富な関数があり,それらすべてを暗記することは現実的ではありません.Rでは関数の前に疑問符を挿入することで,ヘルプを参照できます.例として,install.packages関数のヘルプを起動します.なお,ヘルプは関数だけではなく,プリセットのデータに対しても使用できます.
?install.packages
次に,Rでは半角のハッシュ記号を挿入すると,ハッシュ記号より右の文字列は実行されません.これを利用して,コードの意図や説明などをコメントとして残すことができます.コメントを活用することでコードの可読性が高まり,コードを再利用するとき,共同作業するときに役立ちます.
?install.packages # install.packages関数のヘルプを起動
Rで四則演算を行う算術演算子はExcelと同じです.以下の例では,加算,減算,乗算,除算,累乗の計算を示しています.また,ケアレスミスを防ぐためにも負の値は括弧で囲うことを推奨します.
8 + 5 # 加算
[1] 13
8 - 5 # 減算
[1] 3
8 * 5 # 乗算
[1] 40
8 / 5 # 除算
[1] 1.6
8 ^ 5 # 累乗
[1] 32768
8 / (-5) + 5 # 負の値を含む計算
[1] 3.4
正の平方根を求める関数,ならびに四捨五入を行う関数もExcelと同様です.正の平方根(square root)はsqrt関数で求められます.四捨五入はround関数で行われます.round関数は2つの引数を持ち,四捨五入される数値を第1引数で指定し,小数点以下の桁数は第2引数であるdigits引数で指定します.下記の3行目のように "digits =" を省略しても2行目と同じ処理が実行されます.なお,digits引数のデフォルトの値は 0 ですので,digitsを指定しなかった場合は必ず整数値が返されます.
sqrt(64)
[1] 8
round(3.1415, digits = 2)
[1] 3.14
round(3.1415, 2)
[1] 3.14
Rにおけるオブジェクトとは,語弊を恐れず手短に説明すると,何かしらの値などが代入されたモノを意味します.要するに,データなどを出し入れする大きな箱というイメージで問題はありません.このオブジェクトに数値などを入れることを代入と言い,代入は「<-」あるいは「->」という代入演算子を使用することで実行されます.この他に,「=」によっても代入は実行されますが,比較演算子との混同を避けるために本稿では代入演算子としての等号の使用を推奨しません.
例として,X というオブジェクトに 5 を代入し,X を使用して Y というオブジェクトに 8 を代入します.
X <- 5
X # Xに代入された値を出力
[1] 5
Y <- X + 3
Y
[1] 8
オブジェクトには数値だけではなく文字列を代入することも可能です.
Z <- "Hello World"
Z
[1] "Hello World"
オブジェクトは最後に代入された値のみが保存されます.そのため,同一のオブジェクトを繰り返し使用する際は注意が必要です.A というオブジェクトに 2 を代入した後に 10 を代入すると,10 という値だけが A に保存されます.
A <- 2
A <- 10
A
[1] 10 # 10という数値が返される
オブジェクト名のアルファベットは大文字と小文字が区別され,アルファベットの他には数字や日本語なども使用可能です.ただし,オブジェクト名の1文字目に数字や記号は使用できません.また,Windows版のRはコンソール上での日本語の扱いが難しいため,可能な限りオブジェクト名に日本語を使用しない方が良いでしょう.それゆえ,オブジェクト名にはアルファベットと数字を組み合わせると良いと思います.
比較演算とは数値の大小を比較する演算のことで,演算の結果はTRUE(真)またはFALSE(偽)という論理値で返されます.比較演算は,「等しい」「等しくない」「以上」「以下」「より大きい」「より小さい(未満)」という6種類の演算があります.比較演算子は順に「==」「!=」「>=」「<=」「>」「<」となり,Excelの比較演算子と同様ですが,「等しくない」のみRとExcelでは演算子が異なります.例えば,5 と 10 が等しいか比較演算してみます.
5 == 10
[1] FALSE
5 != 10
[1] TRUE
次に,オブジェクトを利用した比較演算の例を見ていきます.下掲の例ではXというオブジェクトに 5 を代入し,他の数値と比較します.なお,オブジェクトに代入された数値が閾値を超えているかどうかの判定は,条件分岐において非常に重要な処理になります.
X <- 5
X == 10
[1] FALSE
X != 10
[1] TRUE
X > 5
[1] FALSE
X < 1
[1] FALSE
X >= 5
[1] TRUE
X <= 1
[1] FALSE
論理演算は「論理積(AND)」「論理和(OR)」「否定(NOT)」の3種類の演算があります.他にも排他的論理和(XOR)といった複合的な論理演算もありますが,まずは3つの基本的な論理演算を理解することが重要です.命題PとQがあるとき,PとQのいずれも真であると論理積は真となります.他方,PとQの少なくともいずれかが真であるならば論理和は真となります.また,否定は命題の真偽を反転させます.
論理演算子は論理積が「&」,論理和が「|」(パイプ),否定が「!」となります.論理演算も比較演算と同様で,演算の結果としてTRUE(真)とFALSE(偽)が返されます.これまでと同様にXというオブジェクトに 5 を代入し,論理演算を行います.
X <- 5
X >= 3 & X <= 7
[1] TRUE
X >= 8 & X <= 5
[1] FALSE
X >= 3 | X <= 7
[1] TRUE
X >= 8 | X <= 5
[1] TRUE
!X >= 8
[1] TRUE
Rにはデータ分析の練習に使用できるデータが準備されています.また,多くのRパッケージには付属のデータが含まれています.このようなデータを使用するためには,data関数を使用してデータをロードする必要があります.著名なデータはdata関数を実行しなくとも使用可能ですが,コードの可読性を向上させるためにもdata関数を実行する癖を付けておくと良いと思います.
データサイエンスを学ぶのであれば,誰もが1度は触れるであろうデータに iris というデータがあります.この iris というデータはアヤメの花の計測データで,アヤメのがく片の長さ(Sepal Length),がく片の幅(Sepal Width),花弁の長さ(Petal Length),花弁の幅(Petal Width),品種(Species)の5つの変数で構成されています.品種という変数のみが質的変数であり,setosa, versicolor, virginicaという3つの品種が50件ずつ計測されています.すなわち,iris は150行5列のデータとなります.
iris はRにも準備されており,iris を使用するためにRパッケージをインストールする必要はありません.Rでの iris のロードは以下のように行います.
data(iris)
iris # コンソールにデータの全体を表示(出力は省略)
続いて,オブジェクトの中身(データ)を確認します.iris くらいの大きさのデータであれば,コンソール上にデータを表示しても問題はありません.しかし,データが大規模になると,コンソール上にデータの全体を表示するメリットがなくなります.特に列数が多いデータは,複数の段になってデータが表示されるため,データの可読性が著しく低下します.もし分析対象のデータの大きさ(行列の大きさ)に関する情報が事前に持ち合わせていないのであれば,まずはdim関数によって行数と列数を調べるべきです.また,行数あるいは列数のいずれかに興味がある場合は,nrow関数やncol関数によって行数と列数を調べられます.
dim(iris)
[1] 150 5
nrow(iris)
[1] 150
ncol(iris)
[1] 5
行列の大きさを調べた結果,データがそれほど大きくないのであれば iris のようにコンソール上にデータの全体を表示しても良いでしょう.データの一部さえ確認できれば良いのであれば,head関数が便利です.head関数はデータの冒頭6行をコンソールに表示するための関数です.冒頭の6行ではなく,指定した行数を表示したいのであれば引数の n を使用します.あまり使用することはありませんが,head関数の他にtail関数というデータの末尾6行を表示する関数もあります.
head(iris, n = 8) # 冒頭の8行を表示
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
tail(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
145 6.7 3.3 5.7 2.5 virginica
146 6.7 3.0 5.2 2.3 virginica
147 6.3 2.5 5.0 1.9 virginica
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
どうしても表形式でデータを表示したい場合はfix関数を使用します.fix関数を実行すると,Rデータエディタという新しいウィンドウが立ち上がり,データが表形式で表示されます.ただし,次の作業を実行したい場合は,必ずRデータエディタを閉じなくてはなりません.fix関数は手軽に使いやすい関数ですが,データをインタラクティブに編集するための関数です.そのため,データを閲覧しながらの作業はできません.データを閲覧しながら作業できる関数としてView関数があります.Rを使用している環境によっては,R以外の要因によってView関数が動作しない場合もありますので,あまり強く推奨しません.Veiw関数が動作するのであれば覚えておくと良いでしょう.
この他にデータを表形式で表示する関数として,DTというRパッケージのdatatable関数があります.この関数はブラウザにデータが表示されるため,データを確認しながら作業を行えます.
fix(iris)
View(iris)
library(DT)
datatable(iris)
あくまで個人の意見ですが,まずdim関数で行列の大きさを確認し,その次にhead関数かfix関数を使用してオブジェクトの中身を確認する癖を付けると良いと思います.