R言語はデータ解析・統計解析専門のオープンソースのプログラミング言語です。近年、機械学習やビッグデータの分野で活用できることから大きな注目を集めております。データ解析・統計解析の分野においては右に出るものはいないと言われるほどの専門性の高い言語です。この記事ではR言語を理解するために初心者でも分かる歴史、特徴、できること、基礎知識などを簡単に解説していきます。
R言語とはニュージーランドにあるオークランド大学のロス・イハカ氏とロバートクリフォード氏によって1995年に開発された統計解析向けのプログラミング言語です。S言語というプログラミング言語を元にC言語やFORTRANを用いて開発されました。種別はPHPやRuby、javaScriptと同じインタープリタ言語です。R言語の大きな特徴はJavaやC言語などの代表的なオープン系開発言語とは違い『データ解析・統計解析』の専門言語ということが挙げられます。
そのためデータ解析・統計解析においてはその他のプログラミング言語と比べても非常にパフォーマンスが高いと評価されております。R言語は専門分野が分野なだけあり、元々研究や学術において活用されておりましたが、近年は企業においても様々なシーンで活用されております。
また応用統計の分野である機械学習や金融工学などでも利用されるシーンが増えており、2020年7月に『TIOBE Software』によって発表されたTIOBE Programming Community Index (PCI)によるとR言語は様々な検索エンジンにおける話題性において第8位と同社ランキングにおいて過去最高の順位を挙げております。
用途が専門的な言語であるものの、近年大きな注目を集めている機械学習やビッグデータの分野で活用できることが人気を集める理由と言えます。
R言語の読み方は『アールゲンゴ』が一般的となっております。日本では『R言語』、海外では『Rlang』が主流の呼び方となっておりますが正式名称は『R』です。名前の由来については諸説ありますが最も有力なものが統計解析言語のS言語によって実装されたため、ローマ字のSの一つ前である『R』を用いて「一歩手前」という意味を表していること。さらに開発者である両名の名前頭文字に『R』が付くことが由来していると言われております。
R言語はニュージーランドにあるオークランド大学のロス・イハカ氏とロバート・クリフォード氏によって1995年にフリーのソフトウェアとしてオープンソースで発表されました。この二人の開発者の出会いは1992年のことでカナダのウォータールー大学の教授であったロバート・クリフォード氏が3ヶ月という期間的にオークランド大学で講師をしていた際にロス・イハカ氏との偶然の出会うこととなりました。
互いに統計学そしてプログラミング言語についての深い知見を持っており議論を交わすことで「S言語」や「Scheme」よりも完全な『データ解析・統計解析専門言語』を自分たちで開発しようと意気投合します。そこからR言語を開発する通称「Rプロジェクト」が始まったわけなのですが、こちらのRという名称の由来は「S言語」や「Scheme」で用いられたSの一つ前であることが由来しております。
冒頭にも記載しましたが1995年になるとR言語はフリーのソフトウェアとしてオープンソースで発表されました。実は発表前の計画では商用ソフトウェアとして公開することを検討しておりましたが、検討を重ねていくうちに「世の中の全ての人がアクセスすることができるようにというビジョン」を掲げてフリーのオープンソフトソフトウェアとして踏み切る形になりました。
この決断が後に世界的に利用される人気言語となったことに大きな影響となります。日本に普及し始めたのはR言語の誕生から十数年の2003年の頃だと言われております。誕生当社、小規模なデータ分析しか対応していなかったのが数々のバージョンアップを重ねて大規模なビックデータ分析にも対応できるようになります。2020年7月には『TIOBE Software』によって発表されたTIOBE Programming Community Index (PCI)によるとR言語は様々な検索エンジンにおける話題性において第8位と同社ランキングにおいて過去最高の順位を挙げております。
R言語はインタプリタ言語という人間が書いたプログラム(ソースコード)をコンピュータが実行する際に1行ずつコンピュータが読み取りやすいように機械語に翻訳していきながら、そのプログラムを実行していく方式を持つプログラミング言語です。インタプリタ言語は『コンパイルが不要』のためプログラムの確認や修正が容易であるというメリットがあります。一方でコンパイラ言語に比べて『実行速度が遅い』というデメリットがあります。代表的なインタプリタ言語としてPHP、Ruby、Pythonなどが挙げられます。
インタプリタ言語の種類や特徴を解説している記事はこちら>>
R言語でできることを見てきましょう。
R言語はデータ解析・統計解析の専門プログラミング言語であるため機械学習などの統計解析の分野において重宝されております。機械学習には大規模なデータからルールやパターンを発見する方法が組み込まれており、識別と予測が主な使用目的となっております。これらはデータ解析・統計解析を得意とするR言語の土俵です。また同様にデータ解析・統計解析が求められるビジネスインテリジェンス(BI)やビジネスアナリティクス(BA)、マーケティングなどにおいても活用されております。
AI開発(人工知能を併せ持つシステムの開発)をすることができます。AIとは『 Artificial Intelligence』の略語で日本語訳をすると「人工知能」を意味します。世界各国で最も注目を集める技術分野の一つで、近年革新的なスピードで技術発展を遂げております。他にもAI開発に用いられる主要なプログラミング言語としてGo言語やPythonが挙げられます。
Go言語の特徴やメリットを解説している記事はこちら>>
Pythonの特徴やメリットを解説している記事はこちら>>
R言語の特徴を見ていきましょう。
R言語はベクトル処理という柔軟な処理を実現するための実行記法を用いております。ここでいうベクトルとは数学用語のベクトルとは異なり「構造を持ったデータ集合」という「リスト」に近い意味を持ちます。複雑な構造を持つデータも、特別な宣言をすることなく変数に組み込むことが出来ます。
R言語はデータ解析において重宝される視覚化に優れたグラフの作成を手軽に実現できることが出来ます。データのグラフ化・図解化はもちろんのこと、インフォグラフィック環境とも呼べるほど高度なグラフ作成ソフト機能が搭載されております。そのためユーザー独自の図解定義をプログラムで組み込むことも簡易的に実現出来ます。
R言語は外部の統計ソフトで作成されたデータとの互換性があります。例えば統計ソフトとして最も有名なマイクロソフト社が提供する『Excel』において出力されたcsv形式のファイルを「read.csv(“ファイル名”)」というコマンドを使用することでR言語の標準的なテーブルデータ形式であるデータフレームに自動変換して読み込むことが出来ます。
R言語にはアプリケーションや関数群、ライブラリなどが独自にまとめられたパッケージが多数存在します。代表的なパッケージとしてdplyer、ggplot2、stringrなどが挙げられます。
R言語とPythpnの大きな違いは汎用性と専門性にあります。R言語は冒頭でも紹介した通り『データ解析・統計解析』の専門言語です。一方でPythonは統計解析のみならずWebアプリケーションやデスクトップアプリケーションの開発を筆頭に組み込み開発、自動処理、統計・解析、機械学習など幅広い領域に対応出来ます。R言語は専門性が高いため計算が容易であったり、視覚化に優れたグラフ機能を持つなど「データ解析・統計解析」において非常に優れたパフォーマンスを発揮することが出来ます。
R言語 | Python | |
汎用性 | × | ◎ |
専門性(統計解析) | ◎ | ○ |
グラフ機能 | ○ | △ |
シンプルさ | ○ | △ |
学習コスト | △ | ○ |
R言語の基本的な文法を見ていきましょう。
R言語変数では変数の宣言なしで変数の作成を行えます。
そこで主に変数の代入、ベクトル指定を見ていきましょう。
R言語におけるデータ型の種類は大きく基本形(typeof)、モード(mode)、クラス(class)の3種類に分類されます。
データ型分類 | 内容 |
基本型(typeof) | データを保存できる変数のオブジェクトに対する型 |
モード(mode) | オブジェクトに格納されている要素に対する型 |
クラス(class) | オブジェクトの属性に対する型 |
R言語ではデータ型で使用される基本的な種類は以下の通りです。
データ型の種類 | 内容 |
double(実数) | 数値を認識する基本的な型 |
Integer型(整数) | 整数を認識する基本的な型 |
numeric型 | double型とinteger型を合わせた型 |
character型 | 引用符を用いる型 |
logical型 | 真偽値(”真:True” or “偽:false”)の論理型 |
vector型 | c()で囲まれた1行(1次元)のデータセット |
list型 | 数値、文字、論理値など複数要素に対応 |
matrix型 | 表や行列を表現表や行列を表現 |
data.frame型 | 数値データ、文字列データ、因子データなど様々な型のデータを含める |
factor型 | 順序なし因子の型 |
R言語では演算子で使用される基本的な種類は以下の通りです。
演算子の種類 | 内容 |
算術演算子 | 足し算や引き算を実行する |
論理演算子 | 理論を判定する際に用いる |
代数演算子 | 四則演算に代表される計算に使用される演算 |
代入演算子 | 「=」のことで左辺を右辺に代入を実行する |
比較演算子 | 左右の値の比較を行う演算子のこと |
制御文ではfor、if、switch、while文を覚えておく必要があります。
R言語を理解するために初心者でも分かる歴史、特徴、できること、基礎知識などを簡単に解説させていただきました。R言語を一言で表すと『データ解析・統計解析専門言語』です。機械学習やビッグデータなどのトレンドの分野で活用される言語として非常に高い注目を集めており世界で検索エンジンにおける話題性において第8位を獲得しております。R言語の特徴として「ベクトル処理言語」「視覚化に優れたグラフ機能」「データ互換性」
といったことが挙げられます。R言語についてこの記事に記載されている最低限の内容はりかいしておくようにしましょう。