日々の記録簿

日々のできごとの記録

日記

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

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

関連記事

Rで日本の校区地図を描く

Rで日本の校区地図を描く方法です。 データの準備 国土数値情報 ダウンロードサービスより、校区地図のもとになるデータ(shapeファイル)をダウンロードする。 データは、リンク先ページの、JPGIS2 …

ブログを作成

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

VLC3.0.4-3でTSファイルが再生できない【解決】

タイトルの通りですが、いつの間にかVLC(3.0.4-3)でTSファイルが再生できなくなっていました。OSはArch Linuxです。依存関係でダウングレードもできない模様。 ググってみると、【Mpe …

zathuraでクリップボードを有効にする

PDF Viewerとして、zathuraを使用しているのだが、クリップボードが使えなくて微妙に不便だった。で、すこし調べてみたらUnix & Linuxのページに解決策が載っていた。 za …

kernel 4.0.1-1で、Vmware Playerが起動しない

Arch Linuxでカーネルを4.0.1-1にアップデートしたら、Vmware Playerが起動しませんでした。 エラーを見ると、 GCC GNU C Compiler (gcc) version …