Target Markdown 検証メモ

R パッケージ targets の次期バージョン 0.5.0 でリリース予定の Target Markdown の動作について検証しました。

targets とは

targets は R のパイプラインツールです。 開発停止となった drake の後継プロジェクトという位置づけになっています。

targets の使い方を理解するには、公式ユーザーマニュアルにあるチュートリアル

をなぞるのが最適です。

また、他の資料としては drake の活用方法を説明した記事

や、日本語の解説

などがあります。

Target Markdown とは

targets の次期バージョン 0.5.0 で Target Markdown がリリースされる予定になっています(2021/6/9 現在)。1 これは knitrtargets の専用エンジンを導入し、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 ページです。


  1. https://twitter.com/wmlandau/status/1398284741930008578 ↩︎