Posted at

R MarkdownでKnitした日付を自動的に挿入

More than 3 years have passed since last update.


この記事の目的

私が大好きなRMarkdownについて、Tipsを集中的に連載しようという思いつきの企画です。あと自分の中で進めている別企画のメモという位置づけでもあります。なので大した中身はありません


R Markdownとは

Markdown記法をベースに、チャンクという形でRのコードを記述して評価・出力することができるものです。RStudioのクイックリファレンスでは以下のように説明してあります:


R Markdown is an easy-to-write plain text format for creating dynamic documents and reports.



日付をKnitしたタイミングで自動的に更新したい

R Markdownでドキュメントを作成すると、大抵の場合あとで何度も修正を重ねてやっと完成させることになるかと思います。しかし、RStudioでそのままRmdファイルを新規で作成すると、冒頭のyaml部分が自動的に生成されるかと思います。

---

title: "Untitled"
author: "kazutan"
date: "2015年12月9日"
output: html_document
---

このdata:が日付で、これをKnitするとそのまま表示されます。ただ自動的に入る日付は作成日であって、公開日に修正するには手作業でその度に修正することとなります。実に面倒です。せめてKnitした日にできればいいのに、と思うはずです。


Knitした日に自動的に更新するためには?

この手法は以下のサイトを参考にしています:

冒頭のyaml部分を、以下のように修正するとOKです:

---

title: "Untitled"
author: "kazutan"
date: "`r format(Sys.time(), '%Y/%m/%d')`"
output: html_document
---

ポイントは、yaml部分であってもrチャンクが有効であることです。これを利用し、Rでシステム時刻を取得して日付の形式に整えて出力させています。なるほどです。

このテクニックは色々応用が聞くと思いますので、ぜひ色々試してみてください。

Enjoy!