R言語の特徴・できること・メリット、Pythonとの違いから年収・求人まで徹底解説
統計やデータ解析で利用されるプロブラミング言語「R(アール)」について紹介します。R言語はPythonと並び、機械学習やデータマイニングの現場で活用される言語です。
この記事では、R言語の特徴やメリットのほか、活躍できる企業や求人・年収についても解説します。最後までお読みいただければ、R言語についてより深く理解が進むでしょう。
目次
R言語とは
R言語は、統計解析に適した命令体系を持っているプログラム言語です。インタープリタ型言語であり、マルチプラットフォームで動作することも特徴の一つと言えるでしょう。またオープンソースで無償の言語ですから、誰もが簡単に同じ作業環境を整えることができるものです。
統計解析に特化したプログラミング言語
R言語は統計のデータ解析に特化したプログラミング言語で、C#やJava、人気のPythonのようにどんなプログラムにでも対応できるような汎用言語ではありません。一方、データ解析を行ってグラフなどに出力する機能に優れているため、さまざまなグラフの出力を簡単にプログラムできます。
AI(人工知能)の影響で注目されている
R言語は金融工学や機械学習など応用統計の分野でもよく使われますし、生命科学分野に特化したパッケージもよく利用されています。特に機械学習の分野はAIと密接な関係を持っていますので、ビッグデータ解析などを行う企業もこれを導入していますし、学習する人も増えているのです。
R言語の特徴
R言語はベースになった統計解析のS言語や、データ処理部分のSchemeの影響が色濃く残っていますが、非常に個性的な特徴もありますので見て行きましょう。
ベクトル処理
R言語では、ベクトルによる処理を柔軟かつシンプルに記述できます。ベクトルと言っても数学で言うベクトルとはちょっと意味が違い、感覚的にはリストに近いものです。
もちろんこのベクトルの中に数学上のベクトルも含むことができますが、それだけではなく集合や時系列から複雑なデータを持ったデータフレームまで、特に宣言することなく変数に入れることができます。
さらにベクトルの要素が別のテーブルや配列になっているネストも可能です。それにより、複雑なデータ構造であっても管理することができるのです。
統計に適した解析環境
R言語は統計解析用の言語として開発されました。そのため統計の解析やデータの分析においては抜群に優秀です。OSS(オープンソースソフトウェア)のため誰でも無料でインストールして使用できますし、開発環境としてRStudioも配布されています。
パッケージと呼ばれるライブラリには、最先端の技術やアルゴリズムなどの研究成果が公表されることも少なくありません。さして労力を使わなくてもデータを分析できる機能が最初から備わっている点も、R言語の大きな特徴と言えるでしょう。
視覚化に優れたグラフ機能
R言語ではグラフ作画アプリのgnuplotのように、xとyに適当な値を代入してplot(x,y)とするだけで折れ線グラフが描けます。つまり、専用アプリ感覚でプログラム言語を扱える手軽さがあるのです。
R言語には様々なグラフ描画パッケージがありますので、そうした物を使うと複雑なグラフも簡単に作成することができます。
データ互換性
データについては外部の統計アプリから簡単に読み込めます。例えばエクセルでも使われているcsv形式のファイルはもちろんのこと、さまざまなテキストファイルを読み込むことができる関数が準備されているので便利です。
さらにバイナリデータも直接扱えるので、画像を読み込んで処理することも可能です。IBMの統計解析パッケージSPSSやSASオリジナルのバイナリーも直接扱えます。
CRANネットワーク
CRANとは「包括的なR言語の記録保管所ネットワーク」の略で、R言語本体のほか各種パッケージがダウンロードできるサイトを指します。もちろんメインのサイトを利用してもいいですが、ダウンロード速度を考えると国内にあるミラーサイトを利用するのが好ましいでしょう。
日本国内には統計数理研究所と山形大学の2か所にミラーサイトが置かれています。
教育現場から実務・研究現場でも利用可能
教育現場で言語のみならず様々なソフトウェアを使う場合、購入や更新に費用がかかることがネックになります。しかしR言語はフリーソフトウェアで、各種パッケージも無償で利用できます。このことは教育機関や研究現場にとって、導入が容易になることを意味します。
また、R言語はオープンソースで常に新しい開発が進められていますし、プロフェッショナルなツールとして実務でも広く用いられているのです。教育・研究・実務のすべてで共通したツールになるため、R言語を使うと教育で身につけたスキルが実務ですぐに使えるとも言えます。
Kaggleでも利用され続けている
Kaggleは機械学習エンジニアのための情報交換プラットフォームです。ここで行われているコンペでは企業などが提示したデータを課題として、統計の専門家やデータ解析のプロが最適の解析モデルを競い合っています。このコンペで優秀な成績を収めているモデルはR言語で書かれていることが多くなっています。
2019年現在Kaggleでの公開コードのトップはPythonですが、2016年まではR言語がトップでしたし、2019年でも多くの公開コードで使い続けられているという実績は無視できません。特に学問の世界ではR言語が主流なので、Pythonを使っている人にもR言語はおすすめなのです。
R言語でできること
ここでは、R言語で実現できることを中心にみていきましょう。R言語による統計解析やデータ分析は、実社会にどのような恩恵をもたらすのでしょうか。ビジネスの世界を例にあげると、データ分析と可視化による意思決定のサポートは業界を問わずおこなわれています。売上予測や要因分析、施策の効果検証といった活用方法は、ビジネスインテリジェンス(BI)やビジネスアナリティクス(BA)という言葉で企業経営に浸透しています。
機械学習や統計解析で使える
先にも紹介したとおり、統計解析で活躍するのがR言語です。そして機械学習(Machine Learning)などのAI技術は統計解析において重要な位置を占めています。予測や最適化などの統計モデルは、以前より金融や航空宇宙などの分野のリスク計算や予測を中心に発展してきており、コストや人員の最適配分、施策の評価、診断や検知、在庫の最適化など業界を問わずつかわれるようになっています。
近年では、機械学習やAIモデルも実際のビジネスに利用されるようになってきており、AI関連の仕事においてR言語が広く使われていると言えるでしょう。
R言語の役立つ分野
- 機械学習
- ビジネスアナリティクス(BA)
- ビジネスインテリジェンス(BI)
- マーケティング
R言語は統計解析に特化した関数などをたくさん内部に実装していますが、CRANを通じて入手した関数などを利用することもできます。さらにCやFORTRANなどでプログラムし、外部でコンパイルした関数を呼び出して使うこともできるのです。
R言語が役立つ職業・利用シーン
データ分析や統計技術を通してビジネスに貢献する職業をデータサイエンティストと呼びますが、彼らが進めるデータ解析においてR言語はPythonと並び、よく利用される有名なツールです。
機械学習やAIがブームとなり、機械学習エンジニアなどデータエンジニアリングを進める職種や研究機関でもR言語は活躍しています。
R言語を利用する職業
- 機械学習エンジニア
- データサイエンティスト
- ビジネスアナリスト
- データアナリスト
ビッグデータという言葉が一般化してきており、データアナリティクスへの関心はますます高まっています。データサイエンティストやデータアナリストなどの分析職のほか、コンサルタントやアナリスト、マーケターなどのビジネス職種でも、R言語の利用機会は徐々に増えてきています。
こんな企業でも使われている
世界的企業としてGAFAの一角を占めるGoogleやFacebookはR言語を使ってデータ解析を行っていると発表しています。先に紹介したKaggleも2017年にGoogleの子会社になっています。
また日本ではDeNAやドリコムのようなソーシャルゲームの会社が、ユーザーの行動分析などにR言語を利用しているようです。
Pythonとの関係
R言語とよく比較されるプログラミング言語にPythonがあります。どちらの言語もデータ分析や機械学習に利用される点で共通しています。データ分析に特化しているR言語に対して、Pythonは汎用のプログラム言語です。
R言語と同じようにインタープリタとして動作することや、コーディングが簡易であることなどの共通要素があるためよくR言語と比較されます。専門家たちの間でも統計分析にはどちらが適しているのかという議論がよく起こるようです。
PythonとR言語の違い
Pythonは汎用言語ですので様々なプログラミングが行なえます。一方、R言語は統計解析に特化していますから、例えばWebアプリを作ったりはできません。しかし、統計解析や機械学習に関したプログラムはR言語のほうが簡単に書けるのです。
PythonとR言語どちらを学習するべき?
できれば両方学んでおくに越したことはありません。しかしどちらか片方という場合には、データサイエンティストを目指している場合や、データ解析に特化した仕事を行いたいならR言語が一番おすすめです。そうではなく幅広い仕事でプログラミングを行いたいというのであればPythonを学んでおくのが良いでしょう。
R言語のメリット・デメリット
R言語にももちろんメリットとデメリットがあります。以下で詳しく見てみましょう。
メリット
R言語のメリットはたくさんあります。まずデータ解析に便利な機能がたくさん実装されているということが挙げられます。それだけではなく、数多くのパッケージも公開されていますので、必要に応じて利用できるのです。さらにコード自体が簡単なので学習するのに手間がかかりません。機械学習やビッグデータ分析が注目されているので需要も多くなっています。
デメリット
デメリットと言えるのはデータ解析以外の機能がないことです。別のジャンルのアプリを作りたいのであれば汎用プログラム言語が必要になります。また、統計学の知識がないとR言語を活用したデータ解析が十分に行えません。つまり、プログラム以外の知識が求められることがあるということです。そして、R言語のリソースについては大半が英語です。それを読み解きながら学習したり運用したりしなくてはなりません。
R言語を必要とする求人
R言語に関連する求人を見ると、同時にPythonも選択肢に入っていることがほとんどです。ですので、R言語だけに特化した求人はあまり見当たりません。職種はデータサイエンティストがほとんどです。2019年12月現在、有名企業としてはサイバーエージェントやGMOリサーチなどがありました。
どのような求人や仕事がある?
仕事は先にも書いたようにほとんどがデータサイエンティストです。その他にはAIエンジニアやディープラーニング技術者の求人もあります。さらにプレイングマネージャーの募集もありますから、管理職と実務担当者の両方の能力が求められるケースもあるようです。
年収はどれくらい?
年収は企業の規模によってもかなり幅があります。特に安いところや高いところを除けば、だいたい年収400万円から900万円ぐらいの範囲で、中央値は570万円強ぐらいになるようです。
R言語を学習するなら
R言語はどうやって学ぶのが良いのでしょうか。様々な方法について見てみます。
独学で学ぶ
最初に思い浮かぶのは書籍やネットを活用した独学です。R言語に関する書籍もいくつか出版されていますし、初心者向けのものもあります。またR言語に関する学習サイトもあります。初心者向けだけでなくTipsをまとめたサイトもありますので便利です。
勉強会・イベントに参加してみる
R言語に関する勉強会やイベントは年に数回行われています。また、女性専用セミナーと言ったものもあるようです。ビッグデータ関連のイベントに付随したセミナーもありますので、検討してみてもいいでしょう。
スクールに行ってみる
学ぶのならスクールに通ったほうが良いという人もいるでしょう。しかし、残念ながらR言語を教えてくれるスクールはそれほど多くありません。近くにプログラミング教室などのスクールがある場合、電話やメールなどで問い合わせてみてもいいでしょう。
R言語のインストールと開発環境
R言語をインストールする場合、言語単体でインストールするか、エディタのような開発環境と一緒にインストールするかという選択肢があります。R言語には標準で簡単なエディタが付属しますから、とりあえず使ってみると言うだけなら本体だけでも大丈夫です。
R言語 公式
R言語の公式ダウンロードページはCRANにあります。ですからミラーサイトを探してダウンロードしてもいいでしょう。ダウンロードサイトはすべて英文です。まず3つ書いてあるOSから自分の環境にあったものをクリックします。Windowsの場合、次に開いたページの一番上にあるbaseと言う文字のリンクをクリックします。そして、次のページの一番上のDownload R (バージョン名) for (OS名)と書かれたリンクをクリックすると、自己解凍型圧縮ファイルがダウンロードされます。
MacOSの場合、OS選択ページの次にあるページのLatest releaseからR-(バージョン名).pkgをクリックしてダウンロードして下さい。Linuxの場合、OSを選択するとディレクトリページが開きますので、そこにある4種類のディストリビューションから、自分のOSにあったサブディレクトリを選んでクリックします。次のページには複数のファイルとサブディレクトリが表示されていますから、readme.htmlをクリックして詳細説明を読んで下さい。そして、その内容に従ってダウンロードとインストールを行います。
RStudio 公式
RStudioはR言語の開発環境です。プログラムに便利なエディタがメインとなっています。ここからはエディタだけでなく、次にお話しするパッケージもダウンロードできるので便利です。
R言語の機械学習向けパッケージ
R言語には様々なパッケージが準備されています。機械学習に便利なものをいくつか紹介しましょう。
dplyer
dplyer(ディプライヤー)はデータフレーム操作用のパッケージです。データの絞り込みはもちろんのこと、追加や並べ替え、グルーピングなどを関数との組み合わせで行えるようにできます。
stringr
stringr(ストリンガー)は文字列操作のパッケージです。文字列の置換や正規表現による検索など、テキストを扱う際によく利用する機能が収められています。
ggplot2
ggplot2(ジージープロットツー)はグラフ描画のパッケージです。先に紹介したようにR言語にはplotコマンドがありますが、それよりも綺麗で複雑な描画が行えるものです。
caret
caret(キャレット)は機械学習のタスクを効率化するものです。また、機械学習のアルゴリズムが組み込まれたものでもあります。caretは上の3つのようにRStudioのサイトからはダウンロードできません。CRANのパッケージ一覧から探してダウンロードして下さい。
AIを仕事にするためのキャリアノウハウ、機械学習・AIに関するTopics、フリーランス向けお役立ち情報を投稿します。