こんにちは、akkerina です。
先月からドワンゴでN予備校プログラミング教材制作に携わっています。
今日は、私の推しプログラミング言語、Rについて熱く語ります。
R って何?
R とは、統計学者が好んで使うプログラミング言語です。
めちゃくちゃ使い勝手がよいのですが、一般にはあまり知られていません。
Web エンジニアからは見向きもされません。悲しい。
本気でウェブページ作りたいなら、がっつり JavaScript を勉強してください。
本気で機械学習やってみたいなら、がっつり Python を勉強してください。
本気で競技プログラミングしたいなら、がっつり C を勉強してください。
でも、手軽にデータ分析・可視化したいのであれば、断然 R をおすすめします!
なぜなら、R は始めやすいプログラミング言語だからです。
教材としてもぜひ使ってほしいです。
R をおすすめする理由
1. セットアップが簡単
R をインストールする。RStudio をインストールする。終わり。
誰がやってもこの手順!
これに対して、某プログラミング言語を始めようとすると、VS Code? PyCharm? Anaconda? Spyder? Jupyter Notebook? 結局何をインストールすればいいの?ってなって、この時点でやめたくなる。
2. パッケージのインストールが楽
コンソールから install.packages()
でインストールできる。
もちろん、GUI からボタンクリックでインストールしてもオッケー。
依存関係のあるパッケージも自動でインストールしてくれる。
conda? pip? コマンドウィンドウ?
ソンナノワカラナクテモダイジョウブ。
3. 代入が矢印
R では、たとえば、x に 10 を代入したいとき、 x <- 10
と書きます。
誰がどう見ても代入ですね。
これが他のプログラミング言語だと x = 10
となり、初学者にとっては分かりづらい。
4. 添え字が 1 から始まる
これはもう R の勝ちでしょ。
これだけの理由で R を選ぶのもありだと思います。
5. 配列の範囲選択の仕方が明白
array という名前の配列に、10, 20, 30, 40, 50 の五つの数字がこの順番で入っていて、二番目から四番目の要素を取り出したいとします。
普通に考えたら array[2:4]
でしょ。これ以外ないっしょ。
余談ですが、某プログラミング言語で、array[::-1]
とすると、要素が逆向きになった配列が返ってくる件。
array[0:4:-1]
だと空配列が返ってくるのにな。
お前もプログラミング言語の端くれなら一貫性を持ってくれ、と言いたい(端くれじゃなくて大御所だけど)。
6. 元からいろんな関数が入っている
パッケージのインストールなしで、mean()
や sd()
が使える。
円周率も pi
に入ってる。
ちなみに、英語では、円周率に対応する単語がないらしい。
円周率のことを pi と呼ぶそうです。不便じゃね?
7. 要素ごとの計算がシンプルに書ける
秒を分に変換したいときなど、min <- sec / 60
とすれば、sec の要素一つ一つを 60 で割ってくれる。
データフレームも元から入ってるよ。
pandas ナンテイラナイヨ。
8. 行列の計算ができる
A %*% B
で行列の掛け算をしてくれます。
教育現場では重宝するのでは?
と思ったら、高校数学では行列ってやらないの?
お偉いさーん、高校で行列教えたほうががいいよー。
あと、個人的にはインド英語にも慣れさせたほうがいいと思う。
9. グラフが最強
基本的なグラフ(散布図、ヒストグラム、箱ひげ図など)なら、パッケージのインストールなしで描ける。
ggplot2 を使えば、きれいなグラフが描ける。
グループごとに色を変えたり、グラフを並べたりも簡単!
10. R 推しの人と仲良くなれる
自分の好きな漫画とかキャラがポピュラーじゃなくて、同じくそれを好きな人と出会ったら、盛り上がりますよね。
近い将来、きっと、みんなプログラミングができるようになって、合コンとかで「推しプログラミング言語は何ですか?」なんて質問が飛び交うようになるはずです。
そんなとき、同じ R 推しで恋が芽生えたら最高じゃないですか?
R への投資は未来の幸福への投資です!
(ちなみに R はオープンソースなので、投資にかかるのは時間だけです。)
R を学ぶデメリット
ただ、R を学ぶことには、いくつかデメリットもあります。
まず、R を使う人が少ないので、チームプロジェクト向きではない。
ゆえに、仕事で使う可能性は極めて低い。
よって、履歴書に書いても素通りされやすい。
Java や Python のほうが間違いなく企業受けする。
しかし、最大のデメリットは、R に慣れてしまうと、他のプログラミング言語がまどろっこしく感じること。
なので、私は、さくっと何かを確認したいときは R、人と共有するコードは他のプログラミング言語、と使い分けています。
おわりに
R はデータ分析用の言語なので、某プログラミング言語と比べる形になってしまいましたが、某プログラミング言語をディスっているわけではないです。
誰でも手軽に機械学習が使えて便利だと思います。
Java も Python も C も JavaScript も、みんな違ってみんないい。
でも、やっぱり、私にとっての一番は R だなぁ(エモい)。
この記事を読んで、R いいかもって思ってくれた方、ぜひ使ってみてください!
いやいや、やっぱり JavaScript でしょうって思った方、N予備校でお待ちしております。