Rでタイムカード

ひとりアドベントカレンダー12日目。
こんな話がRワカラングに投稿されていた。

WakaTime https://wakatime.com という、テキストエディタなどでの作業時間を記録してくれるウェブサービスが面白そうで、なんとRStudioも候補にあるのですが、投票数が少なくて試せません。 興味のある方はポチッと投票お願いします。

よほどRに管理されたいとみえるのでタイムカードを作った。
以下でインストールできる。

devtools::install_github("dichika/timecard")

パッケージをロードすると以下のようにusernameを求めるので入力すると、タイムスタンプと共にgoogle formを介してタイムカードが記録される。

> library("timecard")
username: dichika
wait...

またセッションを終了すると、最初に入力したusernameが終了時のタイムスタンプと共に記録される。

記録されたデータは以下のURLで誰でも閲覧可能である。
https://docs.google.com/spreadsheets/d/15KpDqhZcIvp0QVukRgn8KCLWSoHyjtwLxLpRgmLm6cA/edit?usp=sharing

googlesheetsパッケージを使えばそのまま読める。

> u <- "https://docs.google.com/spreadsheets/d/15KpDqhZcIvp0QVukRgn8KCLWSoHyjtwLxLpRgmLm6cA/edit?usp=sharing"
> library("googlesheets")
> gs_read(gs_url(u))
             Timestamp status username
1  12/12/2015 10:10:12  enter  dichika
2  12/12/2015 10:11:36   quit  dichika

なお、timecardパッケージは.onLoadと.Lastを使っているだけの単純なパッケージである。
.onLoadはパッケージロード時の挙動を、.LastはRセッション終了時の挙動を規定する。
この辺はAdvanced Rの著者であるHadley Wickhamが書いたR Packagesを読むといい。
http://r-pkgs.had.co.nz/r.html
そういえばAdvanced Rの邦訳も出るのでご参考まで。

R言語徹底解説

R言語徹底解説