文書の過去の版を表示しています。


R言語とは

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

RはPythonよりも古くはない

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

RとPythonは、開発目的と利用目的が共に異なります。Rは “R is a free software environment for statistical computing and graphics.” だそうです。Pythonは “Python is a programming language that lets you work quickly and integrate systems more effectively.”だそうです。ほら、違うでしょう。Rが得意としてPythonが苦手なことは、プログラミング中にデータサイエンスに専念できることです。Pythonが得意としてRが苦手なことは、並列処理やハードウェアの利用、またサービスの提供などでしょうか。Pythonはプログラミング言語なので、データサイエンス以外により多くのことが可能です。

片方でしかできないことはあまり多くはありませんが、片方でやった方がよいことは多いです。どちらが良いか、という議論は不毛です。目的に合わせて、適切なプログラミング言語や環境を選択すれば良いのです。たとえば深層学習を試してみたいなら、Pythonを選択するのがよいでしょう。それでもTensorFlow、PyTorch、Kerasなど、どれを試すかを悩むことになります。TensorFlowやKerasはRからも呼び出せます。多くの機械学習の手法は、まずRからリリースされます。競争相手がRでリリースされているためかもしれません。深層学習とそれらを比較するには、PythonとRの双方を使う必要があります。scikit-learnの開発チームはよい仕事をしてくれていますが、手法の進化と普及は常に同じ速度では進みません。

Rはインタプリタ

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

print("Hello, World!")

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

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

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

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が必須でしょう。