R言語とは?できること・特徴はPythonとなにが違う?インストール方法から難易度まで解説
R言語は統計解析や機械学習に使用される開発言語です。データの解析からグラフへの出力を行うことに優れており、Pythonとともに人工知能(AI)領域においても注目されています。
最近では「プログラミング言語別年収ランキング」にもランクインするように、人材市場においても高い需要が見られます。R言語の入門として、その特徴や利用用途、難易度、具体的なエンジニア職種について解説していきます。
Contents
R言語とは?データ解析や人工知能領域で注目される背景
R言語は統計解析向けのプログラミング言語です。
- 機械学習
- 統計解析
- データ分析
- データマイニング
- グラフィックス
R言語は、上記のようにさまざまな用途で活用されているオープンソース・フリーウェアソフトで、フリーソフトウェアファンデーションのGNU General Public Licenseの条件に基づいてソースコードを無料で入手できます。
R言語は1990年代初頭にオークランド大学の研究者によって開発が進められ、統計処理に特化したプログラミング言語として発展しました。JAVAやPHPなど特定の用途に特化しない汎用言語とは対照的に、統計計算とグラフィックスの開発のために使われます。
また、データの解析からグラフへの出力を行うことに優れ、人工知能(AI)領域においても再注目されています。
AIや機械学習に用いるプログラミング言語としてはPythonが有名ですが、R言語もまたAI領域に積極的に活用されているのです。データエンジニア、データサイエンティスト、データアナリストのような職種には欠かせない言語と位置付けられるでしょう。
人間の処理能力を大幅に超える規模の分析や計算を必要とされる機会の増えている近年では、ビッグデータの統計処理やAIの活用が必須であることから、PythonやR言語が脚光を浴びているのです。
R言語とPythonの違い
PythonとR言語は比較されることが多いプログラミング言語ですが、活用される分野の比重はそれぞれ異なります。
- Python:ディープラーニングや機械学習に多用される
- R言語:統計解析、グラフによるデータの可視化に多く利用される
「統計計算とグラフィックスのための言語」と公式に発信されている通り、R言語は統計計算からグラフへの出力に用いられることが多いことがうかがえます。
また、以下のような項目においても両者には明確な差分があります。
R言語 | Python | |
---|---|---|
汎用性の高さ | 相対的に低い | 高い |
習得難易度 | 相対的に高い | 低い |
年収目安 | 656万円 | 584万円 |
R言語の汎用性
R言語はPythonよりも汎用性は低いです。
たとえばPythonはWebアプリケーションを作成できますが、R言語はあくまで統計計算用であるため、Webアプリケーションを構築することができません。R言語が利用できるシーンは統計計算、データの視覚的提供に限定されているので注意しましょう。
R言語の習得難易度
習得の難易度においても、Pythonに軍配が上がります。
比較的シンプルな記述形式のPythonと比べ、R言語は若干複雑なプログラミングを要求されます。加えて日本語でのリソースが少ないR言語は、時には英語で情報を得なければならないといったデメリットもあります。
Pythonと比較すると、初心者には少々敷居が高いとされるR言語ですが、これは逆にいえばエンジニア市場における希少性の高さに直結します。習得すれば仕事の幅が広がることは間違いないでしょう。
R言語の年収目安
前述の通り、R言語エンジニアには高い希少性があります。そのため、年収目安では高水準が期待されます。
2022年にパーソルキャリアが実施した調査によると、R言語は「開発言語別の平均年収ランキング」で2位にランクインし、その平均年収は656万円。これは人気のPythonを上回る水準です。
あくまでも目安ではありますが、年収面においてはR言語に軍配が上がります。人気のプログラミング言語の、需要や用途、将来性、年収目安などをまとめた以下の記事も合わせてご確認ください。
R言語の特徴とメリット
R言語の主な特徴やメリットには、以下の5点が挙げられます。
- ベクトル処理を実行できる
- 簡単にグラフを作成できる
- 互換性が高い
- パッケージが豊富である
- OSに依存しない
なかでも統計計算後のグラフの描画処理のように、データを可視化する場面でメリットを多く感じられる言語です。
ベクトル処理を実行できる
ベクトル処理とは個々の数値(データ)を「ベクトル」という概念で取り扱うことです。
ベクトルといえば、数学の基礎で習ったような「X軸」「Y軸」の矢印を思い浮かべるかもしれません。数学のベクトルとは、「ひとまとまり、あるいはバラバラの数字を縦か横に並べたものの呼称」と理解できるでしょう。
R言語の特徴のひとつであるベクトル処理も、大枠は同じです。数値、データの相互の関連性を見出すための典型的な手法としてベクトル化を行うのです。
複雑で大規模なニューラルネットワークを、個々のデータで処理するのは非常に非効率です。R言語はデータをベクトル化し、膨大な量のデータをある程度のかたまりとして処理することで、処理速度の飛躍的な向上を図っています。
簡単にグラフを作成できる
簡単にグラフを作成できることもR言語の特徴です。
- ヒストグラム
- 棒グラフ
- 折れ線グラフ
- 散布図
- 樹形図
- ヒートマップ
これら基本的なグラフが標準でサポートされているほか、『ggplot2』などのパッケージを使用することで、さらに高レベルな図を簡単に作図できるようになります。なお、『ggplot2』の公式サイトには一部例も掲載されています。どのようなグラフを展開できるのかイメージをつかむことができるでしょう。
なお、csv形式のファイルやテキストファイルを読み込むことができる関数が標準搭載されていることから、R言語で構築された統計アプリケーションにてデータを簡単に読み込むことが可能です。
互換性が高い
互換性とは、簡単な例を挙げるならPhotoshopとillustratorのような関係を指すものです。AさんがPCで使っているPhotoshopと、BさんのPCで使用しているillustratorは、使用しているソフト自体は異なりますが、両者には互換性があるため、AさんがPhotoshopで書き出した画像データ(PSD)をBさんのillustratorで実行することができるのです。
このAさんから創出されたプロダクトを、Bさんが問題なく実行できるということが、「互換性がある」とざっくりと定義できます。逆に、Aさんが作ったデータをBさんが使えなかったら互換性はありません。
R言語はバイナリデータも扱えるため、画像を読み込んで処理できます。IBM製の統計解析パッケージ『SPSS』や『SAS』オリジナルのバイナリも処理ができることが、R言語の互換性の高さを示しています。
パッケージが豊富である
R言語には多種多様なパッケージが用意されています。R言語公式サイト『CRAN(Comprehensive R Archive Network)』では、2021年9月時点で18,000以上ものパッケージが利用可能であると記されています。
パッケージとは、オブジェクトや関数の宣言をひとまとめに集めたプログラムの部品群のようなもの(複数のモジュールを束ねたもの)で、プロジェクトの配下に配置し、プログラム内の冒頭で利用を宣言して使います。このパッケージを使うことで既存のモジュールを利用でき、効率的な開発が可能になります。
代表的なパッケージについて説明しておきましょう。
- ● dplyr
-
データをひとつの変数として扱う、データフレームの操作を容易にするパッケージです。C++で書かれているため、比較的動作の遅いR言語でも軽快に動作します。高速で動作するため、ソートや絞り込みを行う際は特におすすめです。
- ● lubridate
- 日付や時刻を扱う際にプログラムの記述を簡易化できるパッケージです。例えば、ymd関数を用いることで日付をシンプルに変換できます。日時の操作が頻出する際には利用するべきでしょう。
- ● ggplot2
-
グラフ描画用のパッケージです。ggplot2は綺麗で複雑なグラフが描けることで有名ですが、なかでもグラフのレイヤー処理に注目すべきでしょう。グラフをレイヤーとして扱うことで、グラフ同士を重ねることができます。可読性に優れ、プログラムを書く手間を削減されることが多いほか、結果的にグラフが綺麗に出力されるという特徴があります。
- ● stringr
- 文字列を操作するパッケージです。正規表現による文字列の検索・置換などの機能を備えています。テキスト操作が容易になるため導入を検討する価値は十分にあります。
OSに依存しない
OSを問わないR言語は、Windows、Mac、Linux、Unixで動作します。OSに依存しないということは幅広いシーンで利用でき、さらには多くのユーザーが開発に携われることを意味します。R言語のパッケージの多さは、このOSに依存しない特徴も一因となっているのかもしれません。
R言語でできること
R言語の利用用途として、大きく以下の2つの分野があります。
- 統計解析
- 機械学習
統計解析
統計解析とは、収集した大量のデータを分析・探索し、その結果に見られる傾向やパターンを究明するデータサイエンスです。身近な例であれば、コンビニエンスストアの商品の購買層や性別をデータとして集め、収集したデータから動向を探り、新商品の開発や商品管理に活用するようなPOSシステムを思い浮かべると分かりやすいでしょう。
国家レベルでも利用され、たとえば国勢調査でも統計解析は活用されています。私たちを悩ませている新型コロナウィルスの感染傾向についても同様です。
近年のIoTの浸透によるビックデータ革命と呼ばれるムーブメントに伴い、統計解析の価値は大幅に向上しています。
機械学習
機械学習はAI(人工知能)の一種とみなされるもので、経験から学習し、自動改善を反復するアルゴリズムやその研究分野の総称です。「ML(Machine Learning)」とも呼ばれます。
機械学習の有名な手法として、「ニューラルネットワーク」「ディープラーニング」が挙げられます。
ニューラルネットワークは人間の脳に存在するニューロンという神経細胞の働きを模倣したことに由来します。そしてディープラーニングはニューラルネットワークを多層化し、分析能力を高めた技術です。ニューラルネットワークとディープラーニングは混同されがちですが、簡単にいうとニューラルネットワークを発展させたものがディープラーニングと位置付けられます。
- ECサイトの「あなたにおすすめの商品」の機能
- 顔認識機能
- 自動運転機能
これらの例が、機械学習の利用用途としてイメージしやすいでしょう。この3つの機能には、「反復的」に自動改善を行い、適切な処理に収束するような特徴が共通して見られます。
R言語の始め方・インストール方法
R言語を利用するには、以下の手順でPCにインストールを行います。
※Window環境でのインストール方法です
- 『CRAN』からインストールするOS用のインストーラーのリンクをクリックします
- 「install R for the first time.」をクリックします
- 「Download R 4.1.1 for Windows」(2021年9月現在)をクリックしダウンロードします
- ダウンロードしたファイルを実行し、インストールを完了させます。
R言語のインストールが完了したら『R Studio』という統合環境もインストールすると良いでしょう。R Studioの利用には、下記のようなメリットがあります。
- データや分析結果、コードをプロジェクト単位で管理可能
- グラフのサイズ調整、指定したファイル形式でのエクスポートなど、分析のサポート機能を活用できる
- プログラム記述の自動補完機能あり
- R Markdownでのドキュメント化や、RPubsでのドキュメント共有が可能
『R Studio』はこちらから無料版をダウンロードできます。
R言語に関するよくある質問
R言語に関わる質問としてよく見られる、以下の2点について考えてみましょう。
- R言語を扱う仕事には何がある?
- R言語の資格はある?
R言語を扱う仕事には何がある?
R言語を用いて開発や統計処理を行う職種には、以下のようなものがあります。
- ● データサイエンティスト(データアナリスト)
-
データサイエンティストは、データに基づく課題抽出から課題解決まで幅広く対応する業務です。一方、データアナリストはデータの収集や分析に重点が置かれます。企業によってこれらの定義はあいまいなため、業務内容をしっかり確認する必要があります。
- ● データエンジニア
- データを分析するシステムやツール自体の開発を主軸とします。つまり、データサイエンティストやデータアナリストが行う業務の地盤を作る仕事です。R言語やPythonなどを用いたシステム開発がメインとなります。
- ● 機械学習エンジニア
- 機械学習の実装・開発を担当する技術職です。業務内容としては、AIが動作するシステムの設計、構築、基盤整備、機能の追加などが該当し、「AIエンジニア」「ディープラーニング技術者」と呼ばれることもあります。
R言語の資格はある?
R言語に関する資格は、現在のところ存在しません。データアナリストやデータサイエンティストであれば統計検定やデータベーススペシャリストが有効となる可能性もありますが、それ以前にエンジニアとしての力量を証明すべきかもしれません。まずは基本情報技術者試験や応用情報技術者試験を目指すのも一つの手です。
- ● 基本情報技術者試験
-
IT業界への就職に有利に働くことが多い、定番の国家資格です。独立行政法人情報処理推進機構(IPA)が実施しており、情報処理の基礎を学ぶことができることから年間10万人ほどが受験しています。同じような資格にITパスポートがありますが、基本情報技術者試験の方が格段に難易度は上がります。
- ● 応用情報技術者試験
-
基本情報技術者試験の上位試験で、より深い情報処理の知識が求められる国家資格です。基本情報技術者試験である程度の知識を得たうえで取得に臨むべきでしょう。合格率は20%強と難易度は高いですが、企業によっては資格手当の対象となるなど優遇されるケースも見られます。
- ● 統計検定
-
統計に関する知識や活用力が試される試験です。4級から1級まで、自身のレベルに合わせて受験できます。4級は「データや表・グラフ、確率に関する基本的な知識と具体的な文脈の中での活用力」を評価対象とし、1級では「実社会の様々な分野でのデータ解析を遂行する統計専門力」が試されます。級が上がるごとにより実用的で業務レベルの知識と応用力が要求されます。
- ● データベーススペシャリスト
-
データベースの専門知識が問われる国家資格です。応用情報技術者試験より難易度はさらに高く、合格率も20%前後となっています。ITパスポートがレベル1とされているのに対し、データベーススペシャリストはレベル4で最高難度となっています。狭き門ですので就職の際にはかなりの説得力を持ち、有利に働く可能性が非常に高い資格です。
これらの資格の取得、そしてR言語を習得した技術者は、現在の人材市場において非常に高い需要が見られます。「プログラミング言語別年収ランキング」にも入ってくる注目度の高い言語であるため、これからのスキルセットの一環としてR言語の習得をぜひ検討してみてください。
- R言語は統計解析、機械学習に使用される開発言語
- 人工知能(AI)領域において注目されていることなどから、Pythonと比較されることが多い
- 汎用性や習得難易度ではPythonに軍配が上がるものの、年収目安ではR言語が上回るとみられている
- ベクトル処理を行うことで大量のデータを比較的高速に処理できる
- 分析結果をグラフに簡単に描画できる
- 互換性が高く開発時の利便性がよい
- 利用可能なパッケージが豊富で効率的で高い生産性が望める
- OSに依存することなく幅広い環境で利用できる
- ITの発達に伴い、膨大なデータを扱う統計解析、機械学習の分野で活用されている
- AIが注目されている影響で、データサイエンティストやデータエンジニアなどの職種の需要が高まっている
- R言語には資格試験がまだ存在しない