荷物持ちでも構わない

文系大学4年生からデータサイエンティストを目指して頑張りつつ、書きたいことを書きたいときに書きたいだけ書く、ルール無用雑記ブログ。

MENU

RとPython今から始めるならどっち?プログラミング初心者目線で比較

ビッグデータ解析や機械学習といった、最近"アツい"分野で活躍するためにはもはや必須のスキルとされるプログラミング言語、R(アール)Python(パイソン)

マーケティング専攻の僕は、ゼミの活動でRを使っており、Rの勉強を始めてから大体1年半になる。

そして、つい最近になって、プログラミング学習サイトのCODEPREPが無料解放されていることを知り、いい機会だということでPythonの勉強も始めた。

www.messyer813.com

 

RとPythonはどちらもデータ分析に活用される言語だが、実際のところ、どういう特徴があって、どういう違いがあるのか?

今から始めるとしたら覚えやすいのはどっちなのか?

というのを、プログラミング初心者の僕の目線で比較してみたい。

ちなみにどれぐらい初心者かというと、R歴1年半、Python歴1週間ぐらい、他は一切触ったことがない。

C言語の知識なんか1ミリもない。そのレベルの初心者である。

これからRかPythonを覚えようとしているプログラミング知識ゼロの人にとって役立つ記事になればいいと思う。

RとPythonの特徴と違いを初心者目線で比較

RとPythonそれぞれの特徴や違いについて知るには、以下の記事が非常に参考になる。

というか、プログラミングド素人の僕の意見なんかよりこの記事を読んだ方が絶対にいい。

blog.exploratory.io

エクセル感覚で使えるR、プログラミング感の強いPython

RとPythonを比較したとき、「Rはより関数的で、Pythonはよりオブジェクト指向である」という表現がよく見られる。

RとPythonの両方を触った僕だが、「関数的」の意味も「オブジェクト指向」の意味もわからない。

CやJavaと言った基本的なプログラミング言語をマスターしている人が聞けばそれだけでイメージもつくのかもしれないが、これから始める初心者がそんな言葉を聞いても混乱するだけなので、なかったことにする。

なかったことにした上で、初心者の僕が感想を述べると、Rはエクセルに近い感覚で使えるが、Pythonはプログラミング感が強いと思う。

Rの使用感がエクセルに近いというのが、まさしくRがより関数的であるということなのかもしれないが、

Rは関数を一つ一つ順番に実行していって、地道にデータを探索していく感覚がある。

もちろん、大量のコードを一度に動かすこともできるのだが、基本的には書いたコードを1行ずつ実行していくことになる。

 

Pythonのプログラミング感が強いというのは完全にド素人の感想でしかないのだが、書いたコードを1行ずつ実行していくRと違い、Pythonは書いたコード全てが一発で実行される。

Rとは逆に、1行ずつ実行することもできるのだが、基本的には全てのコードが同時に動かされることになる。

Pythonはプログラミング言語の中ではかなり扱いやすい部類らしいので、むしろ基本がこっちで、Rのように1行ずつ実行される言語が特殊なのだろう。

統計解析に特化したR、機械学習やアプリ制作など汎用性の高いPython

Rは、統計解析に特化した言語である。

元はと言えば、探索的データ分析のために使われていたS言語という言語のオープンソース版がRなので、誕生の目的からして統計解析が想定されている。

また、グラフ作成など、データの視覚化に優れていると言われる。

その強みのほとんどが「ggplot2」というパッケージのおかげらしいのだが、確かにRはグラフが作りやすいし、グラフを整形するときの自由度も高い。

もちろん、統計解析の延長にある機械学習や、ウェブスクレイピング、テキストマイニングなども可能だが、一番の目的としてはやはり統計解析になる。

 

一方Pythonは、多目的に使われる言語であり、Rよりも汎用性が高い。

その中でも機械学習やAIの分野に強いのでそうした目的で使われることが多いが、アプリ制作もできるし、Rと同様、スクレイピングやテキストマイニングもできる。

 

統計解析のためのツールが欲しいならRを選ぶべきだし、統計解析だけでなく汎用的に使える便利ツールが欲しいならPythonを選ぶべきだと思う。

 

初心者でも扱いやすいのは圧倒的にR

プログラミング初心者がこれから始める場合、扱いやすいのは圧倒的にRだ。

これは間違いない。

これには2つの理由がある。

  1. RコマンダーというGUIツールがある
  2. RStudioという統合開発環境一つあればなんでもできる

1.RコマンダーというGUIツールがある

Rコマンダーというのは、R内で使えるパッケージソフトの一つで、コードを書かなくてもクリックするだけで統計解析の機能を使うことができる

自分でコードを書き換えて調整する自由度はなくなるが、膨大な関数を覚える必要なくRで統計解析ができるようになる超便利ツールだ。

f:id:messyer813:20180819114601p:plain

これは恐らくPythonにはない強みだと思う。

これを使うだけで、Rが「プログラミング言語」から「統計解析ソフト」に早変わりする。

始めるハードルが圧倒的に低くなるので、初心者にもとっつきやすいだろう。

2.RStudioという統合開発環境一つあればなんでもできる

これはPythonを触ってみて初めて知ったRの強み。

Rには、RStudioという統合開発環境ソフトがある。

統合開発環境とは、これだけあればRでやりたいことはなんでもできるというソフトのことだ。

コードを書くのも、それを実行するのも、追加パッケージをインストールするのも、エクセルファイルをロードするのも、全部RStudioの上だけで完結できる。

僕はつい最近までこれが当たり前だと思っていたのだが、どうやらこれは相当恵まれているらしい。

Pythonの場合、エディタとか、プロンプトとか、ターミナルとか、なんかよくわからないカタカナ語がいっぱい出てきて、複数のソフトを使い分けないとまともに使えない。

先日このブログでも紹介したVSCodeとか、PyCharmとか、RStudioに似た開発環境はあるのだが、めちゃくちゃ使いづらいし、結局ライブラリのインストールのときはプロンプトを使わないといけないっぽい(実際どうなのかは不明)。

理系の友人曰く、「プログラミングで一番難しいのは環境構築」らしいが、Rの場合はこれが超簡単なので、面倒な環境構築をすっ飛ばしていきなりRに触れることができる。

以上の理由から、プログラミング初心者が新しく始めるならRの方が圧倒的に扱いやすいと言える。

 

RもPythonも両方使えるのが結局一番いい

RとPythonにはそれぞれ得意分野があるし、RでPythonのライブラリを使ったり、PythonでRのパッケージを使ったりすることもあるらしいので、

結局のところ、RもPythonも両方使えればそれが一番いい。

とはいっても、RとPythonはどちらか一方を覚えればもう一方は簡単に覚えられるというものでもないので、初心者が両方覚えるというのはかなり難しいだろう。

Rは統計解析に特化していてハードルが低く、Pythonは汎用性が高いがハードルも高いので、好みと目的で選ぶのがいいんじゃないだろうか。

結局、目的がないとプログラミングの勉強なんて続かないと思うし。

 

まとめ

僕がPythonを始めたのは、RよりもPythonのほうが汎用性が高くて人気があるので、これからはPythonの時代でしょ、という安易な気持ちだったのだが、

思った以上に独学でPythonを勉強するのが厳しいので、どうしようか考えている。

Pythonでやりたいことは結局データ分析とスクレイピングなので、Rだけでも十分と言えば十分なのだ。

だから、Pythonの勉強は一応細々と続けつつ、Rの能力を伸ばしていくのが一番効率的かなーなんて思っている。

僕の性格的にもRの方が合っているように思うし。

卒論を書くにあたってRは絶対に必要になってくるので、優先すべきはRなのかもしれない。

最近勉強する対象を広げすぎなので、自分のキャパシティと相談しつつ、RもPythonも両方やっていければいいなと思う。

Rによる統計解析

Rによる統計解析

 
独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで