『Rによる自動データ収集』を読んだ

訳者の方からご恵贈いただきました。

 f:id:wakuteka:20170614074602j:plain

本文だけで500ページを超える重厚な書籍で、HTMLやXMLの基礎、正規表現Xpathの仕組み、データ分析のプロジェクトの管理までちゃんと押さえつつ、ネットワーク分析、ツイートマイニング、地理的データの可視化、ECサイトからのマイニング・センチメント分析などなど事例も豊富。

それら事例のそれぞれに紙幅をふんだんに割いて記述されてあり、 入門者がいざ実際の課題に取り組む際に重宝しそうな、単にデータ収集するコードだけでなく分析の進め方や考え方がきっと役に立つ、と思わされる一冊でした。

確かに値段は高めだけど、分量を考えたらむしろお得なので、Rを使うならデータ分析の部署にひとつ買って置いといて損はないはず。

 

出版社のページはこちら。

Rによる自動データ収集 ―Webスクレイピングとテキストマイニングの実践ガイド― / Simon Munzert 他著 石田 基広 工藤 和奏 熊谷 雄介 高柳 慎一 牧山 幸史 訳 | 共立出版

原著のサイトはこちら。

Automated Data Collection with R - Welcome

原著であるAutomated Data Collection with R (2014年初版刊行)のコードは対象サービスの仕様変更もありそのままではやや古く、訳者によってかなりの修正が加えられています。Webは生き物だししょうがない。なので英語が読めても日本語版を読むべき。

この本の使い所としては、なにがしかの入門書でRを触ってみたことがあり、もうちょっと複雑な課題に取り組んでみたい、という場合に最も効果を発揮しそうだな、と思います。

 

あわせて読みたい

今年4月にC&R研究所から刊行された Rによるスクレイピング入門 もいい本で、こちらは多くの手法やツールの紹介がコンパクトに集まっている感じなので「Rでどんなことができるか」をカタログ的に眺めるのに最適だと思います。両方買おう。

Rによるスクレイピング入門

Rによるスクレイピング入門

 あとは今月末(6/28)に改定新版が出るRによるテキストマイニング入門も個人的には大注目です。

 

Enjoy!

Rによる自動データ収集: Webスクレイピングとテキストマイニングの実践ガイド

Rによる自動データ収集: Webスクレイピングとテキストマイニングの実践ガイド

R言語徹底解説を読む (1) ようこそRプログラミング

この記事が想定する読者層

もしあなたが「プログラマー」ならば、この記事はまるで不要かもしれません。

ここで言うプログラマーとは、たとえば以下のような習慣を持っている人です。

  1. ほとんど同じ処理をソースコード中に2回以上書いていたら違和感を感じる
  2. 出力結果が変わらなくても、実行速度や理解しやすさのためにソースコードを書き直すことがある
  3. Gitなどのバージョン管理システムを使うことができ、過去のソースコードを「日付の含まれたファイル名でバージョンごとに別ファイルとして保存しておけばよい」とは考えない
  4. 動作テストを自動化し、ソースコードを書き換えてもそれぞれの関数の挙動が意図したものになっているかを確認できる

この記事は、ひょんなことからRに出会い、コードをコピペで動かせるようになり、

「いつかコピペじゃないコードが書けるようになりたい」
「他のプログラミング言語もできるようになりたい」

とぼんやり思っているうちに月日が流れてしまい、漠然とした未達成感を味わいながらも何から始めたらいいのかまるでわからなかった僕のような人に読んでもらえたらと思って書きました。

......そんな人がいるのかはさておき。

それでは、挫折しないための「R言語徹底解説」通読法 で予告した、感想ブログ、はじめます。

続きを読む

挫折しないための「R言語徹底解説」通読法

 今年の2月12日、とある書籍をご恵贈いただきました。原題 "Advanced R"の日本語版、『R言語徹底解説』。全20章、索引を含めると500ページを超える重厚な訳書です。

原著者のHadley Wickham氏は{ggplot2}{dplyr}をはじめとするいくつもの強力な拡張ライブラリの作者であり、R言語に革命を起こしたと評されるなど、今やRユーザにとっては欠くことのできない存在となっています。

Advanced R (Chapman & Hall/CRC The R Series)

Advanced R (Chapman & Hall/CRC The R Series)

R言語徹底解説

R言語徹底解説

そんなHadleyの思想が凝縮されたという "Advanced R"の邦訳を喜びつつ*1も、僕にはひとつの不安がありました。

続きを読む

艦これの任務消化が楽しい人はたぶんWunderlistとか使うと捗る

前回までのあらすじ

18日前くらいに久々にブログを書いた。「なかなか時間が取れないけど進捗を出したい、進捗が欲しい」という気持ちを綴ってTwitterにブログ書いたよと報告したら、@dichika さんに『佐藤オオキのスピード仕事術』という本を薦められたので買って読んでみた。

著者はデザイナーで、なんでも400のプロジェクトを同時に進めるらしい。 400て。頭かスケジュールのどっちかパンクするだろ、と書名を見てまず思った。

続きを読む

どうすれば「進捗」を出せるのか

去年の今頃から、ずっと先延ばしにしているタスクがある。

 

そのタスクの「進捗」を出したい。

けれど、頭ではやろうと思っているのに、「通常業務が忙しくて、なかなか作業のための時間が取れない」でいた。

正確には、時間が取れないと言い訳している状態が、しばらく続いていた。

 

先月の頭に、ふと思い立って自宅を片付けていると、

『できる研究者の論文生産術(原題:How To Write a Lot)』という本が出てきた。

 

できる研究者の論文生産術 どうすれば「たくさん」書けるのか (KS科学一般書)

できる研究者の論文生産術 どうすれば「たくさん」書けるのか (KS科学一般書)

 

 

去年の夏頃に買ったままほとんど放置していたこの本に書かれていたのは、まさに「進捗を出す」ための指針だった。

続きを読む

RStudio Serverでセッションを強制的に新しくするには

RStudio Serverを使っていると、セッションが異常終了する(had abend)ことがある。

*1

30 Sep 2014 02:06:02 [rsession-wakuteka] ERROR session hadabend; LOGGED FROM: core::Error<unnamed>::rInit(const r::session::RInitInfo&) /root/rstudio/src/cpp/session/SessionMain.cpp:1694
30 Sep 2014 02:06:37 [rsession-wakuteka] ERROR session hadabend; LOGGED FROM: core::Error<unnamed>::rInit(const r::session::RInitInfo&) /root/rstudio/src/cpp/session/SessionMain.cpp:1694
30 Sep 2014 02:07:28 [rsession-wakuteka] ERROR session hadabend; LOGGED FROM: core::Error<unnamed>::rInit(const r::session::RInitInfo&) /root/rstudio/src/cpp/session/SessionMain.cpp:1694
30 Sep 2014 02:08:42 [rsession-wakuteka] ERROR session hadabend; LOGGED FROM: core::Error<unnamed>::rInit(const r::session::RInitInfo&) /root/rstudio/src/cpp/session/SessionMain.cpp:1694

これが非常に悩ましい問題で、sessionを強制終了させる方法がマニュアルを探してもよくわからない。しばらく探していたらこんなページがみつかった。


r - Fresh new session for rstudio-server - Stack Overflow

 

~/ (home)以下に.rstudioというフォルダがあるのでそれをリネームするか消しちゃえばセッションが強制的に新しくなるよ! というわけだ。

試しに.rstudio.bakという名前に変えてRStudio Serverにアクセスしてみるとセッションが新しくなっている! ~/以下にもちゃんと新しく.rstudioというフォルダができている。少し乱暴な気もするけどこういう方法もあるということでメモ。

 

種々のエラーと切り結んでいるうちに9月が終わってしまった。時の流れが速すぎる。

 

*1:

 

 エラーメッセージをそのままググるとRStudio関連しか出てこないので、hadabendというのはspaceの入れ忘れだと思う。

サーバーのload averageが高過ぎると思ったらrun levelが5だったので直した

6月に研究室で買ってもらったサーバーを計算用に使用していたのだが、つけっぱなしに していると度々動作が重くなって、ついにはpingは通るのにsshログインはできなくなるという謎の挙動を示していた。なにかCPU負荷を減らす方法はないか気にしていた折、topの結果をソートできることを知って、試してみたら計算用のプロセスの次にgnome関連のプロセスがメモリをバカ食いしていた。GNOMEといえば確かLinux環境でデスクトップ周りを実現させるための奴らだ。

 

コマンドラインで計算しかしてないサーバーに、そんなものは、いらない。

 

uptimeで確認したload averageはなんと5を超えていた。アホか。cpu8個しか無いのに。

 

Fedora 19 - ランレベルを変更する : Server World

ランレベルはここを参考にして修正した。

上のようになっていればGNOMEが余計なメモリを食うことはなくなる。

計算用のサーバーで、GUIでの使用を想定していない場合はランレベルを落としておいたほうがいい。なんで気づかなかったんだろう。

 

かねてから頭を悩ませていた問題が解決したおかげで食欲がとどまるところを知らない。