R と Pythonの比較
データ分析のツールとして代表的な存在である、R と Python を比較します。どちらも、無償のオープンソースプログラミング言語である点は共通しています。
R が統計解析用のプログラミング言語としてはじめから開発されているのに対し、Python は汎用のプログミング言語として開発され、統計解析用のライブラリを充実させてきたという、言語の開発コンセプトと開発経緯に違いがあります。例えば R はライブラリなしで、データの可視化や回帰分析といった基本的なデータ分析を行うことが可能です。Python は何をするにしてもまず、Pandas や NumPy、あるいは Statsmodels といったライブラリをインポートするところからはじまります。
また、R では配列を 1 から数え、Python では配列を 0 から数えるという違いがあります。配列を 0 から数えるのは C、C++ なども同じであり、Python が特殊というわけではありません。しかしプログラミングを専門としていない多くの人にとっては、Excel で 1 行目、1 列目から数えるように、R の方が自然な数え方に感じられるかもしれません。
R は統計学およびそれに関連する学問分野を中心に、アカデミアでのプレゼンスが高く、Python はビジネス現場でのプレゼンスが高いです。
統計解析の機能は、Python より R の方が充実しています。また R はベースに基本的な統計解析の機能を備えているため、Python と比べると実行が容易であるというメリットもあります。
機械学習は R もライブラリを使用するのが一般的ですが、最新のライブラリは Python の方が先にリリースされる傾向にあります。深層学習(ディープラーニング)ではさらに、その傾向が強まります。
ベイズ学習(ベイズモデリング)に関するライブラリは、R の方が先にリリースされる傾向にあります。ベイズ統計およびベイズ学習に関する書籍も、R の方が多いです。
項目 | R | Python |
---|---|---|
特徴 | 統計解析用のプログラミング言語 | 汎用のプログミング言語 統計解析用のライブラリが充実 |
主なユーザー | アカデミア研究者 データサイエンティスト |
AIエンジニア データサイエンティスト |
統計解析 | ★★★ | ★★ |
機械学習 | ★★ | ★★★ |
深層学習 | ★ | ★★★ |
ベイズ学習 | ★★★ | ★★ |
学習コストは一般に、R より Python の方が高いといわれています。しかしソフトウェアエンジニアやプログラマーにとっては、統計解析に特化したプログラミング言語であるRの方がむしろ異質で、汎用的なプログラミング言語である Python の方が馴染みやすいという意見もあるかもしれません。
R と Python のどちらを学ぶべきか
「R と Python のどちらを学ぶべきか」という質問への回答は、質問者の立場によって変わってきます。
もしあなたがデータサイエンティストを目指すのであれば、R と Python の両方を学ぶことをおすすめします。参考書も R のコードが書かれたものと、Python のコードが書かれたものが同程度に存在します。どちかに絞ることは、学習の幅を狭めることに繋がります。
もしあなたが AI エンジニアを目指すのであれば、Python を学ぶことをおすすめします。特に深層学習(ディープラーニング)の分野では、Python の独壇場といっても過言ではありません。
もしあなたがソフトウェアエンジニアやプログラマーである、またはそれを目指している立場であり、一般教養としてデータサイエンスを学びたいということであれば、道具として Python を使うことをおすすめします。
もしあなたがそれ以外の立場であり、一般教養としてデータサイエンスを学びたいということであれば、道具として R を使うことをおすすめします。あるいは、各種の有償ソフトウェアを利用するのも選択肢のひとつです。
