それは、コードをどのように実行するか、またはランダムな方法で乱数を描画するという点で多少確率的であるコードがあるかどうかに依存します。(これの例は、ビーガンパッケージの順列テストです。ここでは、タイプIIエラー率を考慮して、結果が前述のタイプIエラーと異なるかどうかを知るのに十分なデータが集まるまで、順列を続けます。)ドローには影響しないはずです...
最終的なスクリプトがバッチジョブとしてのみ実行されるか、全体として実行され、疑似乱数ジェネレータからの確率的な描画がない場合は、スクリプトの上部にシードを設定して、全体を実行しても安全です。 。
コードをステップ実行する場合、おそらくブロックを再実行する場合はset.seed()
、疑似乱数ジェネレータから描画する各関数呼び出しの前に呼び出しが必要です。
私の科学論文では、私は日常的に超防御的に行き、各コードチャンクの前にシードを設定します。これにより、後日、既存のスクリプトに挿入する必要がある可能性のあるスクリプトの更新が可能になります。たとえば、レビュー担当者または共同執筆者のコメントに返信するなどです。
結果が特定の一連のpseduo-random値に依存しないことが望ましいので、問題はレポートまたはペーパーに記載されている正確な値を再現することができます。非常に防御力があり、各コードチャンクにシードを設定する場合でも、正確なインストールを再作成する必要があります--- Rバージョンとパッケージバージョンなので、これらの詳細を記録することが不可欠です。安全性をさらに高めるには、特定のプロジェクト/論文のために、以前のRバージョンとパッケージを維持する必要があります。実際、多くの人がこれを行っています。
R
作業で、この状態はにあり.Random.seed
ます。私の最大の懸念R
は、一部のルーチンがこれを回避できる可能性がset.seed
あることです。場合によっては、まったく無視することもできます。