はじめに


  • 科学的分析の結果に自信を持つためには、他の人(将来の自分自身を含む)がそれを再現できなければならない
  • targets はワークフローの自動化によって再現性の達成を助ける
  • targets は R プログラミング言語と連携するように設計されている
  • このワークショップの例示データセットには、南極のペンギンの測定データが含まれている

初めての targets ワークフロー


  • プロジェクトは分析を整理しておくのに役立ち、後で簡単に再実行できます
  • RStudioのプロジェクトウィザードを使用してプロジェクトを作成する
  • _targets.R ファイルはすべての targets プロジェクトに含める必要がある特別なファイルであり、ワークフローを定義します
  • tar_script() を使用してデフォルトの _targets.R ファイルを作成する
  • tar_make() を使用してワークフローを実行する

ワークフローオブジェクトの読み込み


  • targets のワークフローは別の非対話型Rセッションで実行されます
  • tar_load() はワークフローオブジェクトを現在のRセッションにロードします
  • tar_read() はワークフローオブジェクトを読み取り、その値を返します
  • _targets フォルダはキャッシュであり、一般的には手動で編集すべきではありません

ワークフローのライフサイクル


  • targets はコードの変更に影響を受けたステップのみを実行します
  • tar_visnetwork() はワークフローの現在の状態をネットワークとして表示します
  • tar_progress() はワークフローの現在の状態をデータフレームとして表示します
  • tar_outdated() は古くなったターゲットをリストします
  • tar_invalidate() は特定のターゲットを無効化(再実行)するために使用できます

targetsプロジェクト組織のベストプラクティス


  • コードを R/ フォルダに配置する
  • 関数を R/functions.R に配置する
  • パッケージを R/packages.R に指定する
  • その他の雑多なファイルを _targets/user に配置する
  • 関数を書くことは targets パイプラインの重要なスキルである

パッケージの管理


  • targets でパッケージをロードする方法は複数あります
  • targets はユーザー定義の関数のみを追跡し、パッケージは追跡しません
  • renv を使用してパッケージバージョンを管理する
  • conflicted パッケージを使用して名前空間の競合を管理する

外部ファイルの取り扱い


  • tarchetypes::tar_file() はファイルの内容を追跡します
  • tarchetypes::tar_file_read() をデータ読み込み関数(例えば read_csv())と組み合わせて使用し、入力データとパイプラインを同期させる
  • tarchetypes::tar_file() をファイルに書き出す関数(ファイルに書き込んでパスを返す関数)と組み合わせてデータを書き出す

ブランチング


  • 動的ブランチングは単一のコマンドで複数のターゲットを作成します

  • ブランチの出力に必要なメタデータを含めるために、通常カスタム関数を書く必要があります

並列処理


  • 動的ブランチングは単一のコマンドで複数のターゲットを作成します
  • ブランチの出力に必要なメタデータを含めるために、通常カスタム関数を書く必要があります
  • 並列コンピューティングは関数ではなく、ワークフローのレベルで機能します

Quartoを用いた再現可能なレポート


  • tarchetypes::tar_quarto() は Quarto ドキュメントをレンダリングするために使用されます
  • Quarto ドキュメント内で tar_load() および tar_read() を使用してターゲットをロードする必要があります
  • 重い計算は主な targets ワークフローで行い、軽いフォーマットやプロットの生成は Quarto ドキュメントで行うことが推奨されます