R言語とは?Rでできること。現役Rユーザーが語る。

R

R言語は、データ分析、統計解析に特化した言語であるとよく言われます。しかし「データ分析」「統計解析」しかできないと考えてしまっては損をしています。C/C++のような汎用のプログラミング言語同様の制御構造を備えていますし、CRANで公開されているパッケージを利用すれば、はるかに簡単に望みの機能を実装することができる言語です。

R言語とは

R言語はPythonと並んで、機械学習、データサイエンス、統計解析に使われる言語です。統計プログラミング用言語であるS言語から派生したと言われており、統計データの操作、分析、可視化に強い汎用プログラミング言語です。

R言語の特徴

データ分析、統計解析に強い

R言語はデータ分析、統計解析に強い言語と言われています。これは、表形式のデータの取り扱いが得意な言語と言い換えることもできるかと思います。

「表形式のデータ」と言われて多くの人が思い浮かべるのがExcelではないでしょうか。多くの人が、仕事等で使っていると思います。Excelでできることは基本的にR言語でもできますし、Excelより速く、高機能な処理を行うことができます。

R言語とExcel : RでExcelと同等の作業をするには?
これまで入社以来約25年機械製品の設計・開発試験等の仕事を続けてきて、その間、一番使い続けてきたソフトはExcelです。でも、Excelでできることって、実はRでもできます。RでExcelと同等のことをする方法について整理しています。

データ分析、統計解析以外もできる

「R言語は統計解析に特化した言語である」とよく言われますが、「統計解析に特化した言語」ってどういうことでしょうか?統計解析しかできないのでしょうか?

いえ、そんなことはありません。

R言語にも、C/C++等のプログラミング言語同様に、分岐(if)、ループ(for)等の制御構造があります。また、データ型に関しても、C/C++の配列、構造体(クラス)に対応するものとして、ベクトル、リストがあります。Rはインタプリタ言語であるため、C/C++のような言語と比較すると、計算スピードは遅い傾向にありますが、時間のかかる部分はC/C++で書いてdll化して、Rからdllを呼び出して高速化して使うこともできます(実際、公開されているパッケージはC/C++で書かれていることが多いそうです)

このように、R言語は、プログラミング言語として十分な機能を持っており、データ分析、統計解析以外の解析も可能な言語です。

さまざまなパッケージ

CRAN(Comprehensive R Archive Network)で、さまざまな機能をもったパッケージが公開されています。これを導入することで、求める機能を簡単に実装できます。

おすすめパッケージ

  • dplyr(データ操作のためのパッケージ)
  • ggplot2(可視化のためのパッケージ)
  • stringr(文字列操作のためのパッケージ)
R : stringrで文字列を検索、置換
Rで文字列操作を行う場合、baseRでもstringrでもどちらでも行える内容はほぼ同じです。このページでは、stringrに対応するbaseRの文字列操作関数を示しつつ、stringrの使い方をまとめています。

オープンソースソフトウェア

R言語はオープンソースのソフトウェアですので、以下のような特徴があります。

これって、実は大事ですよね。

  • 無料で利用できます。高価な統計解析ツール、プログラム開発環境が必要ありません。
  • オープンソースのため、世界中の開発者によってバグの修正や機能追加が常に行われています
  • 多くの人が関わって常にアップデートされているのでセキュリティ面でも安心です。
  • Windows,Mac、Linuxで利用できます。

Excelとの関係

Pythonと比較されることが多いR言語ですが、表形式のデータの処理が得意ということから、Excelと比較した方が良いようにも思います。

R言語とExcelを比べた場合、R言語の方が、Excelよりも速く、管理がしやすいです。また、パッケージを導入することで簡単に高機能なプログラムを実装することができます。

R言語とExcel : RでExcelと同等の作業をするには?
これまで入社以来約25年機械製品の設計・開発試験等の仕事を続けてきて、その間、一番使い続けてきたソフトはExcelです。でも、Excelでできることって、実はRでもできます。RでExcelと同等のことをする方法について整理しています。

Pythonとの関係

Pythonは機械学習の領域で人気がある言語で、R言語よりも汎用性が高く、Webアプリ、デスクトプアプリ、組み込みアプリなどの開発によく使用されています。

R言語は、統計解析やグラフの可視化の点では、Pythonよりも使いやすく、データの収集、整理、可視化を繰り返して、仮説を立てながら行うような探索型のデータ解析作業に向いています。

データ分析において、統計学の役割が大きくなってきている今、探索型のデータ解析をR言語で行い、その結果得られたモデルをアプリ化するのにPythonを使うというのが、理想の形でしょう。

R言語でできること

統計解析

R言語は統計に強いプログラミング言語ですから、以下のような統計解析が簡単にできます。

  • 各種統計量の計算(平均、標準偏差、中央値、四分位数, etc)
  • 各種検定(t検定、F検定、適合度検定、独立性検定、etc)
  • 回帰分析

可視化

Rはさまざまな方法で可視化を行うことができますが、主なものとして、以下の3つがあります。

  • パッケージを使わない方法(base R)
  • latticeパッケージを使う
  • ggplot2パッケージを使う

最後にあげたggplot2はtidyverseパッケージ群に含まれているパッケージです。tidyverseパッケージ群には、データの可視化を行うggplot2以外にも、データの読み込み、抽出、加工を効率的に行うための機能が含まれており、データの整理、可視化、仮説立案を繰り返しながら行う探索型のデータ解析作業には必須のパッケージです。

機械学習

caretパッケージを用いることで、200以上のアルゴリズムを用いることができます。

caretでできる代表的なアルゴリズム

  • ロジスティック回帰
  • ニューラルネットワーク
  • XGBoost

また、kerasパッケージを用いることでディープラーニングも簡単に行うことができます。

RとKeras(TensorFlow)でディープラーニング
Keras/TensorFlowを使えばRでもディープラーニングを行うことができます。しかも、とても簡単に。Keras/TensorFlowのインストールから、簡単な例題までを、はじめてディープラーニングにトライする方に向けてまとめています。

もちろん、自分で機械学習用のソースコードを書くことも可能です。

k近傍法(k-Nearest Neighbor algorithm, k-NN法)
機械学習アルゴリズムの中で最も単純なものの一つで、分類を目的に使用されるk近傍法についてまとめています。

 

数値解析

CRANで公開されているパッケージを利用することで、以下のような解析も簡単に行うことができます。

  • 最適化問題(Rsolnpパケージ)
  • 非線形連立方程式(nleqslvパッケージ)
  • 常微分方程式、微分代数方程式(deSolveパッケージ)
  • モンテカルロシミュレーション(baseR)

これらは、実際に僕がRで解析したことがある数値解析問題ですが、パッケージが利用できるので、C/C++やfortranを使って自分でプログラム化するのに比べて、はるかに簡単にプログラム化することができました。

スクレイピング

ネットで簡単に情報が入手できる時代に欠かせないのが、スクレイピングの技術。Rでもrvestというパッケージを使うことで、自動で大量のデータを入手することができます。

競馬 過去データcsvをnetkeibaから無料で入手する方法
JRA-VANを無料で使えるのはお試し期間のみ。競馬のデータ分析を継続して行うには、どうしても過去の競馬レース結果データを自前で収集する必要があります。netkeibaからのスクレイピング方法やデータをcsv 形式で保存する方法について記述しています。
競馬予想AIの作り方 〜 Rでスピード指数をスクレイピング
スピード指数データは「無料」「スピード指数」で検索して、トップに出てくる下記のサイトからを入手させていただくことにしました。 競馬新聞&スピード指数(無料)

 

インストール

R本体

CRANからインストーラーをダウンロードして実行します。基本的に難しいことは何もありません。デフォルトの設定のままで特に問題ありません。

The Comprehensive R Archive Network

RStudio

RStudioはR言語のIDE(統合開発環境)です。

機械学習をいろいろ試したいからPythonも勉強したいとは思うのですが、RStudioがあるからどうしてもR言語を使いたい、って思わせてくれるソフトです(RStudioでPythonも動かせるようですが、まだ、使いこなせていません…)。

RStudioには無料で利用できるオープンソース版と優先的なサポートが受けられる商用ライセンスがありますが、無料のオープンソース版で十分だと思います。R言語を使用するなら、ぜひ導入をご検討ください。

こちらもインストールは簡単です。下記のサイトから「RStudio Desktop」の「Free」版(無料版)のインストーラーをダウンロードしてインストールしてください。

RStudio Desktop - Posit

 

MacでRStudioを使う場合、RStudioのバグのため日本語入力がうまくできず、イライラするかもしれません。解消法はこちら

MacでRStudio 日本語入力のイライラを解決する方法
MacでRstudioを使う場合、Sourceペイン(エディタペイン)で日本語入力しようとしてキーボードを打っても、打った文字が表示されず、日本語入力を確定して初めて入力している文字が表示されるため、ストレスに感じていました。この解決方法を...

まとめ

データ分析、統計解析に強いと言われるR言語ですが、決して、それだけにとどまるプログラミング言語ではありません。CRANで公開されているパッケージを利用することで、簡単に、高機能なプログラムを実装することができます。