R言語入門
R言語とは、統計解析に特化したプログラミング言語の1つです。そのためR言語は、統計に関する分野以外で使用されることは少ないです。よって他のプログラミング言語と比較して、R言語の学習コストは低いのが特徴です。ここでは、R言語の入門として概要やR言語とPythonの違いについて詳しく紹介します。
R言語とは
R言語は、オープンソースのフリーソフトウェアであるため無償で使用することができます。またR言語は、統計解析やデータ分析に強みをもっているスクリプト型のプログラミング言語です。
スクリプト言語とは、曖昧な定義となっており、可読性が高く比較的簡単にソースコードを記述できる言語の総称を指します。例えば、PHP・Ruby・Pythonなどもスクリプト言語と言えるでしょう。R言語のソースコードは主にC言語やFORTRANのプログラミング言語を使用して開発されています。
R言語とPythonの違い
R言語は、統計解析に強みをもっているプログラミング言語です。しかし、Pythonのプログラミング言語を利用しても統計解析を行うことはできます。そのため、R言語とPythonのどちらを学習すべきか気になる方は少なくありません。
R言語はデータ分析に特化したプログラミング言語であるため、単体でWebアプリケーションを開発することができません。しかしPythonを使えば、Webアプリケーションの開発が可能です。またPythonはフレームワークが充実しており、機械学習に強みをもっているプログラミング言語でもあります。そのため、Pythonは汎用性が高い言語と言えるでしょう。
しかし、統計解析の専門家を目指すならば、R言語のほうが機能が豊富で、学習コストが低いためおすすめです。一方で、まだやりたいことが定まっていない場合には、汎用性が高いPythonを学ぶことがおすすめと言えます。
R言語の基礎
R言語は統計解析に特化しているプログラミング言語ということが分かりました。ここでは、R言語の基礎について詳しく紹介します。
ベクトル
R言語を使用すれば、数字の列をベクトルとして扱うことで、多次元ベクトルを作成することができます。ベクトルを生成する際には「c()」と記述すれば簡単に作成することが可能です。ここからは具体例を見ていきましょう。
x <- c(1,2,3,4,5,6,7,8,9,10)
上記では「x」というベクトルが作成できました。また、記述方法は他にもあります。例えば「x <- c(1:5,5:1)」と記述すれば「1 2 3 4 5 5 4 3 2 1」が「x」のベクトルの中に代入されることになります。コロン「:」を活用すれば、連続した整数を扱うことが可能です。R言語の注意点として「<-」が代入を意味することが挙げられます。例えば「x<-z」と記述すれば、「x」に「z」を代入することが可能です。
また「rep」という関数を使用すると便利なこともあります。「rep」は複製を意味する「replicate」の略称です。例えば「x <- c(rep(3,5))」と記述すれば、「3 3 3 3 3」が「x」のベクトルの中に代入されることになります。
R言語は実数
一般的なプログラミング言語では、整数同士の割り算を行うと演算結果も整数になります。しかし、R言語で整数同士の割り算を行うと演算結果は実数になります。R言語では小数点以下を丸めるために使用できる関数も用意されているため、上手く活用することが大切です。代表的として「round(x, digits = 0)」「ceiling(x)」「floor(x)」「trunc(x)」などが挙げられます。それぞれの関数は、実数の丸め方が異なるため、必要に応じて使いこなすことが重要です。
コメントの記述方法
他のプログラミング言語と同様に、R言語でもコメントを記述することができます。コメントをソースコードの中に記載しておけば、第3者がプログラムを確認するときに理解がしやすく、作業工数の削減につながるでしょう。R言語でコメントを記述する際には「#」を使用します。「#」から行末までがコメントアウトされます。コメントアウトされた記述はプログラムの実行結果に影響を与えません。
配列の注意点
プログラミング言語を学ぶ上で配列は基礎と言えます。R言語でも配列という概念はありますが、他のプログラム言語と異なる点があるため、注意が必要です。一般的なプログラミング言語の場合、配列の初期値は「0」から始まることが多いです。一方、R言語の場合、配列の初期値は「1」から始まります。
そのため、他のプログラミング言語を学習した場合、間違って記述してしまうことがあるので注意しましょう。R言語の独特の文法や記述方法に最初は戸惑う方が多いですが、慣れてしまえば非常にシンプルでわかりやすい言語です。
R言語で正規分布のグラフを作成
R言語では、数多くの確率分布のグラフ・ヒストグラム・箱ひげ図などを簡単に作成することができます。ここでは、一例としてR言語を使用して正規分布のグラフの作成方法について詳しく紹介します。
簡単な正規分布を作成する方法
正規分布を作成してみたいという方は、下記のプログラムを実行してみましょう。
curve(dnorm,-10,10) #curve(関数の式,横軸の最小値,横軸の最大値)
これだけのプログラムで、標準正規分布のグラフを作成することができます。まず「-10,10」というのはグラフの横軸の範囲です。ここでは「curve()」と「dnorm()」という関数を使用しています。
「curve()」の関数は、指定した関数のグラフをそのまま作成することが可能です。その際に関数の式を入力する必要があります。プログラムでは「curve(関数の式,横軸の最小値,横軸の最大値)」のように使用します。ここからは具体例を見ていきましょう。
curve(sin(x),-10,10,col=”blue”) #「col=”blue”」によって色は青に指定しています。
上記のプログラムでは、横軸が「-10」から「10」までの「y=sin(x)」のグラフを作成することが可能です。またグラフの線の色を指定することもでき「col=”色の名前”」で指定します。色の指定方法はさまざまであるため、インターネットの情報や書籍などを参考にしてください。
また、「dnorm()」の関数は正規分布の確率点を返します。プログラムでは「dnorm(x,平均,標準偏差)」のように使用するのが一般的です。これは、パラメータの平均と標準偏差を取ります。ただしパラメータの指定がない場合には、自動で平均「0」分散「1」の標準正規分布の確率点を返すようになっています。ここからは具体例を見ていきましょう。
dnorm(7,10,15) #dnorm(x,平均,標準偏差)
上記のプログラムでは、平均「10」標準偏差「15」の正規分布の「7」における確率点を求めることが可能です。この処理結果は「0.02606951」と出力されます。
平均と分散を指定して正規分布を作成する方法
先述したグラフでは「dnorm」のみ関数として記述し、パラメーターを特に指定しなかったため、標準正規分布のグラフとなりました。パラメーターを指定すると、作成できるグラフの幅が広がります。ここからは具体例を見ていきましょう。
curve(dnorm(x,50,10),0,100) #横軸の範囲は0から100まで
上記のグラフでは、横軸が「0」から「100」までで、平均「50」標準偏差「10」のグラフを作成することができます。
横軸や縦軸に名前をつけて正規分布のグラフを作成する方法
グラフに軸に名前をつけることも簡単にできます。ここでは「xlab=”横軸の名前”」「ylab=”縦軸の名前”」を使用します。具体例を見ていきましょう。
curve(dnorm(x,170,6),150,190,xlab=”身長”,ylab=”その身長の方が全体に占める割合”) #横軸は150から190まで
上記のプログラムでは、横軸は「150」から「190」までで、平均「170」標準偏差「6」として身長に関する正規分布のグラフを作成することが可能です。そして「xlab=””」と「ylab=””」によって軸に名前をつけることもできます。
グラフを複数作成する方法
ここでは、複数のグラフを出力させる方法について紹介します。プログラムを記述する際にオプションとして「add = TRUE」を追記すれば、複数のグラフを作成することが可能です。以下で具体例をご紹介します。
curve(dnorm(x,350.92,0.85),300,400,add = TRUE,col = “blue”) #横軸は300から400まで、色は青
curve(dnorm(x,350,3),300,400,add = TRUE,col = “green”) #横軸は300から400まで、色は緑
上記のプログラムでは「add = TRUE」を記述することによって、2本のグラフを作成することができます。
R言語を使用すれば統計解析やグラフの出力ができる!
これまでに、R言語の概要やPythonとの違い、R言語の基礎、正規分布のグラフの作成方法について解説しました。R言語は統計解析に強みをもっているプログラミング言語です。Pythonでも統計解析を行うことはできますが、統計解析に特化したいと考えている場合には、R言語を学習するのがおすすめです。
R言語は独特の文法や記述方法があるため、他のプログラミング言語と比較して戸惑う方も少なくありませんが、慣れるとシンプルでわかりやすい言語です。特に配列の初期値は「1」から始まる点には注意しましょう。
今回は正規分布のグラフの作成方法について詳しく解説しましたが、他にもヒストグラムや箱ひげ図などのグラフも比較的簡単に作成することが可能です。統計解析について興味がある方は、ぜひR言語を勉強してみましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから