文書の過去の版を表示しています。
目次
R言語とは
Rはデータサイエンス用ソフトウェア
Rはデータサイエンス用のソフトウェアです。Harvard Universityのオンラインコースでも、John Hopkins Univesityのオンラインコースでも、用いられています。
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を持ちます。 Linux用のソフトウェアとしてのRは、コンソール用のソフトウェアです。
R用のIDEはRStudio
R用のエディタ
Emacsを使う人は、ESSが必須でしょう。