日々の記録簿

日々のできごとの記録

日記

Rを勉強するためにいろいろ寄り道をしていた

投稿日:

Rをもっと勉強したいなと思って、『R言語徹底解説』を買ってみました。・・・が、ちんぷんかんぷん。クラスとか、オブジェクト指向とか、遅延評価とか、さっぱりわかりません。

これはいかんと思い、ここ2ヶ月ほど、プログラムを基礎から勉強していました。以下、手をだした言語と、役に立った書籍です。他にもいろいろ買ったのですが、自分の中で「これいい!」と思ったものだけ挙げています。

まずC言語から

最初は、『新・明解C言語入門』をひたすら書き写しました。1冊終わった次点では、これが何の役に立つんだろう?と思っていましたが、このあとC++に進んだときに、「基本は一緒だ」と気づいたので理解が一気に進みました。

他にも何冊か手をだしましたが、結局、これが一番分かりやすかったと思います。

ここまで1ヶ月くらい。

C++に手をだす

まず『やさしいC++』をやりました。例が淡白すぎて、あまり面白くはなかったのですが、Cから入ったためか中盤くらいまではすぐに理解できました。

次に手をだしたのが、”beginning c++ game programming”。英語ですが、「なぜこうするのか」「なぜクラスが必要なのか」といったあたりをコードで丁寧に説明してくれていて分かりやすかったように思います。

このとき、手元に『基礎からしっかり学ぶC++の教科書』を置いて、よくわからないところを補完していました。

この辺から、だんだんRのコードの書き方が変わってきました。うまく言えないのですが、「同じことを繰り返さない」「その言語っぽさを意識して書く」ということができるようになってきた気がします。

ここで勉強をはじめて2ヶ月くらい経っていました。

pythonを復習してみる

ここで久しぶりに『みんなのpython』を手に取ってみました。

で、読み始めた瞬間に「なにこれめっちゃわかりやすい!」「pythonすげー」って感動している自分がいました。前に読んだときは「オブジェクト指向とかクラスとか何言ってんだ?」って感じだったのに。

「初心者にはpython」という方もいますが、私はC++を勉強しないとpythonの良さがわからなかったので、人によるのだろうと思います。

ふたたびR言語・・・の前にhaskell

ここで再び『R言語徹底解説』を読んでみると、だいぶわかるようになっていました。クラスとか、オブジェクト指向とか出てきてもビビらない程度には・・・ですが。

ただ「遅延評価」「すべてが関数」といったあたりがイマイチわかりません。これはたぶん関数型言語も勉強しなければならないのでしょうね。

というわけで今はhaskellです。

正直、かなり難しくて、ぜんぜん進みません。ただ、haskellはおもしろい。C言語やpythonとはぜんぜん違った哲学があるように感じます。歩みは非常にゆっくりですが、もう少し勉強してみたいところです。

結論

他の言語を勉強したことで、Rのコードの書き方が変わった気がします(グローバル変数が怖いなんて前はぜんぜん考えていませんでした)。それと、これまで意味がわからなかったRの書籍の表現(クラスとか遅延評価とか)が何となくわかるようになりました。

正直、もっと若いうちに勉強しておくべきだったと思うのですが、後悔しても仕方がありませんよね。コツコツこれからも勉強していきます。

追記

私はふだんからLinuxを使っているので、環境構築はかなり楽でした。apt-getやyumで必要なものがあっさり揃うのは便利です。文字コードもあまり悩まなくていいですし。

Windowsではどうやるんだろう?と思って調べてみると、いろいろ面倒くさそうだったので、プログラムを勉強するときはLinuxのほうがいいような気がします。

スポンサーリンク

スポンサーリンク

-日記

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Nexus 6とNexus 9 lteにCyanogenmodをインストールした(その後)

Nexus 9 LTEとNexus 6にCyanogenmodをインストールしてしばらく立ったので、現状報告(2015/04/09現在)。 まず、Nexus 6の方は、日常的に使えるレベルに達している …

RによるPISAの分析(データの準備:続報)

三重大の奥村晴彦氏のホームページにて、RでPISAデータを読み込む方法(PISAデータを読む)が公開されていました。 こちらは、Rubyで読み込んでいるようです(ちなみに私はRubyはサッパリです・・ …

awstatsでアイコンが表示されない

私は、アクセス解析にawstatsを利用しています。 なかなか便利なのですが、一つだけ気になっていたのが、アイコン画像が表示されないことです。ほとんど実害はないので半年ほど放置していましたが、この度、 …

perl 5.22とlogwatch

perl 5.22にアップデートしたところ、logwatchに”Unescaped left brace in regex is deprecated, passed through in …

ブログを作成

ブログをつくりました。 当面の目標は、週に1回の更新です。 おもに、教育やPCネタについて書く予定です。