R言語とは?
Rは、たったひとつの目的のために作られたプログラミング言語です。それは「データを扱うこと」。統計、データ分析、データ可視化は、ライブラリで後付けする機能ではなく、言語そのものです。平均、モデル、プロット、確率分布は最初から同梱されており、文法もデータを扱う人が実際に投げかける問い、つまり「この数値の列について何か教えてくれ」というかたちに沿って設計されています。
この一点集中こそがRの性格そのものです。Javaのような汎用言語はプリミティブから積み上げることを求めますが、Rはt検定を1行で差し出してきます。
これがRの本領です。実行してみてください。
統計量が3つ、コードは3行、importは不要。c() が値のベクトルを作り、mean()、sd()、max() は言語に組み込まれています。これがRの体験を凝縮したものです。
短い歴史
Rは、1970年代にベル研究所で開発された統計言語 S から生まれました。1990年代半ば、オークランド大学の2人の統計学者 Ross Ihaka と Robert Gentleman が、Sのアイデアを無料のオープンソースとして実装し、それをRと名づけました。2人のファーストネームの頭文字と、その源流であるSの両方にかけた命名です。
R 1.0は2000年にリリースされ、以来R Core Teamによって開発が続けられています。商用の先祖たちが有料だった時代に無料だったため、Rはまず大学や研究室に広まりました。そのアカデミックなDNAは今も健在で、統計学者が新しい手法を考案すると、たいてい他のどの言語よりも先にRのパッケージが登場します。
Rの用途
- 統計とデータ分析。 中核となる用途です。記述統計、仮説検定、回帰、時系列——どれも一級市民として扱われます。
- データ可視化。 基本のRなら関数呼び出し1回でプロットが描け、
ggplot2パッケージはあらゆる言語の中でも最良の作図ライブラリだと広く評価されています。 - データサイエンス。 「tidyverse」と呼ばれるパッケージ群(
dplyr、tidyr、readr)が、乱雑なデータのクリーニングや整形を驚くほど快適にしてくれます。 - バイオインフォマティクス。 ゲノミクス向けのRパッケージを数千本そろえるBioconductorプロジェクトのおかげで、生物学の多くの領域でRが標準言語になっています。
- 学術・研究。 経済学、心理学、疫学、生態学——p値の載る論文を出す分野なら、その大学院生はおそらくRを書いています。
- レポーティング。 R MarkdownやQuartoは、分析コードを洗練されたレポート、スライド、ダッシュボードに変えてくれます。
Rが好まれる理由
すべてがベクトル。 Rの演算は、値の集まり全体に自然にそのまま適用されます。prices * 1.2 はループを書かずにすべての価格を20%引き上げます。これが腑に落ちると、データ処理のコードは劇的に短くなります。ベクトルまで進めば、この考え方が至るところで出てきます。
統計が組み込み済み。 乱数生成、確率分布、統計的検定、線形モデルは基本のRに含まれています。多くの言語ではサードパーティ製の依存関係ですが、Rでは最初からそこにあります。
CRAN。 Comprehensive R Archive Networkには2万を超える精選パッケージがあり、公開前にすべて自動チェックを通過しています。あなたの分野で使うニッチな手法も、たいてい誰かがパッケージ化しています。
時間を無駄にしない作図。 hist(scores) と書けばヒストグラムが出ます。呼び出し1回です。データを見て、調整して、また見る——この探索的分析のサイクルこそ、Rが最適化している対象です。
RとPython:正直な比較
初心者が必ず聞く質問なので、党派心抜きで答えます。
Python はデータ処理がとても得意な汎用言語です。データの仕事がより大きなシステム——Webアプリ、本番のMLパイプライン、自動化のつなぎ——の一部であるときに強みを発揮します。求人も多く、1つの言語でカバーできる範囲が広いのが利点です。
R は統計に卓越したデータ言語です。仕事そのものが分析であるとき、つまりデータセットの探索、統計モデルの当てはめ、論文品質の図表やレポートの作成が目的のときに強い。統計のエコシステムはより深く、最先端の手法はまずRに実装されます。
どちらが「上」ということはありません。重心が違うだけです。研究、生物統計、分析寄りの職種にいるならRから。データ寄りのソフトウェアエンジニアリングを目指すならPythonから。そしてネット上の論争が触れない秘密がひとつ。1つ目の言語を身につけてしまえば2つ目の習得コストはごくわずかで、多くのプロは同じ週に両方を使っています。
いますぐ試してみる
始めるのに何かをインストールする必要はありません。このページのコードブロックはそのまま動きます。もう少し大きめの例として、サイコロを振るシミュレーションと集計をやってみましょう。
sample() はサイコロを100回振る様子をシミュレートし、table() は各目が何回出たかを数えます——呼び出し1回で度数分布表です。100 を 10000 に変えてもう一度実行してみてください。平均は確率論が言うとおり3.5に近づいていきます。この「問いを立てる→コードを書く→答えが出る→調整する」というループこそ、Rで作業する感覚そのものです。
自分のマシンでRを動かす準備ができたら、次のステップはRとRStudioのインストールです。
この記事のまとめ
- Rは統計、データ分析、可視化のために作られた無料のオープンソース言語です。
- 源流はSで、1990年代半ばにRoss IhakaとRobert Gentlemanが開発し、R 1.0は2000年に登場しました。
- 強みはベクトル化された演算、組み込みの統計機能、CRANの2万を超えるパッケージ、そして最高クラスの作図機能です。
- RとPythonは対立するものではありません。統計ではRが深く、エンジニアリングではPythonが広く、多くの人が両方を使っています。
次は、自分のマシンにR(とRStudio)をインストールするところから始めましょう。
よくある質問
R言語は何に使われるのですか?
Rは統計、データ分析、データ可視化に使われます。学術研究、生物統計学やバイオインフォマティクス、疫学など、「このデータセットを分析してグラフとモデルを作る」ことが仕事になる分野で圧倒的に強い言語です。一方でアプリやWebサイトの構築にはあまり使われません。もともとそのために設計された言語ではないからです。
Rの習得は難しいですか?
データ分析の用途に限れば、Rは始めやすい言語のひとつです。データセットの読み込みも、要約統計量の計算も、グラフの描画も、それぞれ1行で書けます。後々つまずきやすいのはRの柔軟さ、つまり同じことをやる方法が何通りもある点です。だからこそ、早い段階で現代的な書き方の作法を身につけておくと後が楽になります。
RとPython、どちらを学ぶべきですか?
仕事が統計中心(研究、生物統計、計量経済学、レポーティング)なら、Rのほうが早く遠くまで行けます。データに加えてスクリプト、Webバックエンド、機械学習エンジニアリングまで1つの汎用言語でカバーしたいならPythonです。実際には両方を使うデータ専門職が多く、概念はそのまま応用できます。
Rは無料ですか?
はい。RはGPLのもとで公開されている無料のオープンソースソフトウェアです。CRANから無償でダウンロードでき、CRAN上にある数千のパッケージもすべて無料です。