1

リモート コンピューターで複雑なワークフローを正常に実行できました。そこで、すべてが最新であることを確認し、問題なく結果を調べることができます。

結果をより簡単に調査できるように、.drake フォルダーをローカル コンピューターに移動したいと考えています。

これを行うと(マシン間でフォルダーをコピーして貼り付ける)、ローカルセッションがすべてのターゲットが古くなっていると見なすという問題に直面します。ローカル コンピューターで指定されている.drake フォルダーはdrake_cache()正しいフォルダーであるため、何が起こっているのかわかりません。

4

1 に答える 1

0

現時点では、自信を持って説明できるほどの知識はないと思います。調査できるように、再現可能な小さな例を共有することはできますか?

drakeあるマシンから別のマシンにワークフローをコピーする.drake場合、ターゲットを最新の状態に保つには、通常、フォルダーをコピーするだけでは十分ではありません。コード ファイル(宣言した場合は // ファイルfile_in()も含む) を含むプロジェクト全体をコピーすることを強くお勧めします。直感に反するように思えるかもしれませんが、各ターゲットのステータスは、その時点で R セッションにロードされている関数やその他のオブジェクトに依存するため、スクリプトと呼び出しをサポートするソース コードもコピーする必要があります。https://books.ropensci.org/drake/projects.html、特にhttps://books.ropensci.org/drake/projects.html#safer-interactivityをご覧になることをお勧めします。通常よりも幸運が訪れるかもしれません。file_out()knitr_in()make()r_make()make()

名前空間付きの関数呼び出し (例: pkg::fun()) を使用する場合は、パッケージ環境がマシン間で一致していることも確認する必要があります。実際、どちらのマシンもおそらく同じバージョンの R と同じパッケージ環境を持っているはずです。renvプロジェクトのパッケージ環境をロックダウンするのに最適です。

移植性をさらに高めるには、コンテナー化が非常に役立ちます。例: https://gitlab.com/ecohealthalliance/drake-gitlab-docker-example .

于 2020-01-19T13:08:04.030 に答える