2.3 結果を変えるために変更できるのはなにか?

では, ここまでで概観してきたものを要約し, これから何をすべきかを下見していきましょう.

rmarkdown で R Markdown 文書をレンダリングする処理は knitr.Rmd.md で変換する処理, それから (典型的には) Pandoc で .md を望む出力に変換する処理で構成されます.

.Rmd から .md への変換のステップではレポート内の全てのコードの実行と「翻訳」を取り扱うことから, ここでの「コンテンツ」への変更はほぼ, .Rmd のうち knitr が翻訳するコードを編集する作業に絡んできます. これらのステップ全体を操作するツールには knitr チャンクオプションおよびフックがあります.

.md はフォーマットされていないプレーンテキストです. ここで Pandoc が登場し, HTML や PDF, Word といった最終的な出力フォーマットへ変換されます. この流れに沿って構造とスタイルを付与します. この処理では スタイルシート (CSS), 生 LaTeX または HTML コード, Pandoc テンプレート, Lua フィルタといった様々なツールが助けになります. R Markdown 文書の入れ子構造を理解し, よく考えて識別子とクラスを使うことで, これらのツールを取捨選択して出力の目標となる箇所に応用することができます.

最後に, YAML メタデータはこれらのステップの切り替えに役に立つことでしょう. パラメータを変更することでコードがどう動作するかを変更でき, メタデータを変更すればテキストの内容を変化させ, 出力オプションの変更は異なる命令のセットを備える render() 関数を与えます.

もちろんこれらは全て大まかな経験則であり, 絶対的な事実として扱うべきでありません. 究極的には, 機能を完璧にきれいに分類することはできません. 本書全体を通じて, 説明されている結果の多くは, しばしば実現までの道筋が複数あり, さらにそのパイプラインの様々なステージの説明に立ち入ることになることが分かるでしょう. 例えば文書内に画像を挿入する作業では, .Rmd から .md への変換の段階で R コード knitr::include_graphics() を使うこともあれば, Markdown 構文 (![]()) を直接使うこともあるでしょう. ややこしく思えるかもしれませんし, アプローチごとに異なる利点を持つこともあります. しかし悩まないでください. なんにせよ, あなたの問題を解決する多くの有効な方法が存在し, あなたはその中から自分にとって最も理にかなうアプローチに従うことができます.

さあこの辺にしておきましょう. 本書の残りの部分で, これまで議論してきた R Markdown を最大限活用するための, あらゆるコンポネントを変更する方法のより具体的な例を使って, あなたの絵の下書きに色をつけることができます.