Target Markdown 検証メモ
R パッケージ targets
の次期バージョン 0.5.0 でリリース予定の Target Markdown の動作について検証しました。
targets
とは
targets
は R のパイプラインツールです。
開発停止となった drake
の後継プロジェクトという位置づけになっています。
targets
の使い方を理解するには、公式ユーザーマニュアルにあるチュートリアル
をなぞるのが最適です。
また、他の資料としては drake
の活用方法を説明した記事
- McBain (2020, April 30). Before I Sleep: Benefits of a function-based diet (The {drake} post). Retrieved from https://milesmcbain.com/posts/the-drake-post/
や、日本語の解説
などがあります。
Target Markdown とは
targets
の次期バージョン 0.5.0 で Target Markdown がリリースされる予定になっています(2021/6/9 現在)。1
これは knitr
に targets
の専用エンジンを導入し、R Markdown 文書中でパイプラインを定義できるようになるというものです。
Target Markdown の基本的な使い方はユーザーマニュアルの “Chapter 3 Target Markdown” で説明されています。
調べたこと
ユーザーマニュアルに示されている例では、まず targets チャンクでパイプライン全体の定義を行ってから実行し、最後に結果を表示しています。 そのため、ターゲットを定義するコードとその実行結果が離れた位置に来てしまいます。 コードと結果の対応をわかりやすく示すためには、ターゲットの定義コードとその実行結果は近くに表示したいところです。 そこで、ターゲット定義コードの近くに実行結果を表示するにはどうすれば良いか検証しました。
わかったこと
検証の結果、次のことがわかりました。
- すべての
targets
チャンクを実行する前に途中でtar_make()
を実行すると、その時点までに完成したパイプラインが実行される。 targets
チャンクを追加してからまたtar_make()
を実行しても正しくキャッシュが効く。- ターゲット定義チャンクの近くにその実行結果を表示したい場合は、ターゲット定義チャンクの直後で
tar_make()
とtar_read()
を実行すれば良い。
検証用 R Markdown ソース
以下は検証に使用した R Markdown のソースコードです。
なお検証には GitHub 上にある ropensci/targets
バージョン 0.5.0.9000
を使用しました。
レンダリングされたHTML
以下は上の R Markdown ソースを knitr
でレンダリングした結果の HTML ページです。