R言語とは

Rはインタプリタ

次の1行は、Rで書いたHello, World!です。

print("Hello, World!")

Rは関数型プログラミング言語であり、またオブジェクト指向言語です。 Rのコードにはmain関数やメインルーチンがありません。 インタプリタとしてのソフトウェアRにコードを読ませれば、即座に実行されていきます。

Rコンパイラの要望があった時代もありましたが、現在ではインタプリタ=遅いという印象も払拭され、多くの言語は、その実装方針のまま受け入れられるようになっています。

Rでできること

統計学に基づくデータの分析やシミュレーションは、およそすべてRで実行できます。 機械学習の手法の多くも、Rで実行できます。

Rが苦手なこと

並列分散処理、特に大規模なものは、控えめに言えば得意でない、中立的に発言すると苦手、積極的に発言すると、かなり困難です。

Rはデータサイエンス用ソフトウェア

RはPythonよりも古くはない

Rが古く、Pythonが新しい、という雰囲気の話を耳にすることがあります。しかし開発開始から数えれば、Rの最初の公開は1993年で、Pythonの最初の公開は1991年ですから、Pythonの方が先輩です。参考までに、言語としてRの原典にあたるS言語は、両者よりもずっと古く、最初のリリースは1976年でした。

RよりPythonの方がかっこいいかもしれません

Matplotlibを始めに、Pythonの幾つかのサードパーティが提供するライブラリやモジュールのグラフ描画機能は、センスがよく、商業レベルに近い緻密さを持ちます。 例えばWordCloudは、今ではRでも描くことが可能ですが、もともとはPython発でした。 Rのグラフ描画機能も柔軟ではありますが、Pythonが醸し出す格好よさには追いつけていません。 そのため主にRを使っている人でも、Pythonも使ってみることをお勧めします。

Rのコアチームの開発方針は堅い

R言語はS言語の方言です。開発に当たって、頑固な後方互換性を原則としています。仕様の変更は滅多に行われません。そのため、何年も前に書いたコードは、今でも問題なく動きます。

Rの拡張はサードパーティが担う

仕様の拡張はサードパーティにより、適宜行われています。機能の拡張もサードパーティにより、とても頻繁に幅広く行われています。Rの開発にかかわるサードパーティの多くは、様々な分野の研究者であり、Rの発展は彼らからの社会貢献と捉えることもできます。

RはGUIを持つ

WindowsとmacOS用に提供されているRのバイナリアプリケーションは、簡易なGUIを持ちます。 Tcl/Tkを同梱しているので、Tkを用いたGUIの構築も可能です。 Linux用のソフトウェアとしてのRは、コンソール用のソフトウェアです。

R用のIDEはRStudio

R用のIDEはRStudio社から無償で提供されています。

RKWordはQtベースのIDEです。

EclipseもRに対応しています。

JupyterもRをサポートしています。

R用のエディタ

Emacsを使う人は、ESSが必須でしょう。