cucumber flesh

Rを中心としたデータ分析・統計解析らへんの話題をしていくだけ

Rmdファイルで日報を書くためのタイムスタンプアドインを書いた

作ったというほど大したものではないが、RStudioアドインの普及のために書いておく。

へーしゃのエンジニアチームでは毎日やったことやぎょーむ進捗を「日報」としてSlackにあげることになっている。そこで自分は1日の終わりに今日1日の作業を思い出すのは辛いし時間の無駄でもあるので、メインで使用しているRStudioのタブの一つを日報ファイルとして使っている(ぎょーむ中の90%以上はRStudioを開いているんじゃないだろうか)。このタブの一つにRMarkdownファイルを開いといて(毎日新しいファイルを作るのも手間、乱雑になるので週ごとに分けてる)終業時にKnitして吐かれたmarkdownをSlackにあげてシュッと帰る。

insert_timestamp <- function() {
  rstudioapi::insertText(paste(paste0('`r remoji::emoji(paste0("clock",',  format(Sys.time(), "%I") %>% as.numeric(), '))`'), format(Sys.time(), "%H:%M")))
}

このファイルには作業内容はもちろん、雑な思いつきや試行錯誤の記録を残すようにしている(これらはSlackにはあげないんだけど...チラシの裏感がすごくて知見として共有する日報には相応しくなさそう、という理由から自粛してる)。その時に割と大事というか意識しているのが時間の記録で、この日の午前中にやったこととかどれくらい時間がかかったとか記録するようにしている。

Rではタイムスタンプを挿入する方法としてtimestamp()関数があるけど、コンソールに時間を出力するだけでファイルには記録できなくてダメだった(コピペすれば良いんだけどそれなら手打ちで時間を入力した方が良さげ)。

# 標準関数のタイムスタンプ
timestamp()

絵文字おじさんなので{remoji}パッケージと組み合わせて現在の時間を示す時計の絵文字が出力されるようになっている。使ってみるとこんな感じになる。ギョーム内容とは全く関係ない適当に作ったダミーテキスト。

f:id:u_ribo:20170122174812p:plain

アドインにもキーボードショートカットを割り振れるので、ささっとタイムスタンプが押せて良い。自分と同じようにRMarkdownで日報や日記を書いている人がいたらオススメしたい。

ついでに、完了したぜ!みたいなギョームには✔️チェックマークをつけておくとやっている感が自分・他人にも伝わりやすい。でも{remoji}エイリアス忘れがちなのでこれも関数化した。

さらについでに日報のフォーマットが決まっているなら、テンプレート化しておくとRMarkdownの新規作成から生成できて良さげ。{slackr}と組み合わせれば投稿まで関数化できると思うのだけど、そこまではやっていない(上記の通り、チラシの裏コメントの検閲が入るため)。

Enjoy!