はじめに
- 科学的分析の結果に自信を持つためには、他の人(将来の自分自身を含む)がそれを再現できなければならない
-
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 ドキュメントで行うことが推奨されます