この記事の目的
私が大好きなRMarkdownについて、Tipsを集中的に連載しようという思いつきの企画です。あと自分の中で進めている別企画のメモという位置づけでもあります。なので大した中身はありません。
R Markdownとは
Markdown記法をベースに、チャンクという形でRのコードを記述して評価・出力することができるものです。RStudioのクイックリファレンスでは以下のように説明してあります:
R Markdown is an easy-to-write plain text format for creating dynamic documents and reports.
注意事項
この記事ではRStudioでの利用を前提にしています。1
Markdownの基本
まずMarkdownにそこまで慣れていない方は、RStudioのクイックリファレンスを見ながら作成することをおすめします。RStudioで[Help] - [Markdown Quike Reference]をクリックすると、Helpビューワーにでてきます。
他のHTML要素
基本のMarkdownには私がよく使う定義リスト(<dl>
)などはありません。これらはhtmlタグ直打ちでいけます。Markdownはhtmlタグをそのまま出力します。なのでhtmlタグ直打ちしてもそのまま送り出します。これはRMarkdownでも同様です。
ただし、html直打ち要素とMarkdown記法の要素が混ざるとうまくいかなくなる場合があります。以下のようなコードがあるとします。
<ul>
- list1
<li>list2</li>
</ul>
この場合、大抵うまく表示されません:
-
- list1
- list2
Markdown記法で表現できるのであればMarkdown記法で記述し、必要性がでたらhtmlタグ直打ちにするといいかと。
R Markdownで使えるMarkdown記法
本題です。
正体はpandoc
R Markdownによるドキュメント生成は、超ざっくり言うと以下の流れになります: 2
- Rmdファイルに対して
rmarkdown::render()
を実行 - これによりRチャンク部分を評価
- 評価した内容を取り込んでmdファイルを生成
- mdファイルをpandocが処理し、ドキュメントを生成
はい、そうです。Markdown部分を評価しているのはpandocです。ちなみにRStudioを利用しているなら、RStudio内に組み込まれているpandocに処理が回されます。3 要するにR Markdownで使えるMarkdown記法はpandocによる拡張Markdownとなります。これさえ知っておけば、いざという時はpandocを頼りに調べることができます。
というわけで、rmarkdownの公式サイトにあるPandoc Markdownのドキュメント4がこちらです:
「なんかこんなことできないかなぁ」と思った時は、こちらを確認するといいでしょう。
実際に使ってみるには?
連載のどこかで多分書きます。
Enjoy!