코드를 실행하는 방법 또는 임의의 방식으로 임의의 숫자를 그리는 점에서 다소 확률이 높은 코드가 있는지 여부에 따라 다릅니다. (이 예제는 철저한 채식주의 패키지 의 순열 테스트로 , 결과가 명시된 유형 I 오류와 다른 유형 II 오류율을 나타내는 지 여부를 알 수있을만큼 충분한 데이터를 모을 때까지 순열을 계속합니다. 무승부에 영향을 미치지 않아야합니다 ...
최종 스크립트가 배치 작업 또는 전체로만 실행되고 의사 난수 생성기에서 확률 적 추첨이없는 경우 스크립트 상단에 시드를 설정하고 전체를 실행하는 것이 안전합니다 .
코드를 단계별로 실행하려면 아마도 블록을 다시 실행 set.seed()
하고 의사 난수 생성기에서 가져올 각 함수 호출 전에 호출 이 필요합니다 .
내 과학 논문의 경우, 나는 각 코드 청크 전에 정기적으로 슈퍼 방어력을 발휘하고 시드를 설정합니다. 이를 통해 나중에 스크립트를 업데이트하여 언제든지 기존 스크립트에 삽입해야 할 수 있습니다. 검토 자 또는 공동 작성자의 의견에 답변하십시오.
결과가 특정 pseduo-random 값 세트에 따라 달라지지 않기 때문에 문제는 보고서 또는 논문에 명시된 정확한 값을 재현 할 수 있습니다. 매우 방어 적이며 각 코드 청크에 시드를 설정하더라도 정확한 설치 --- R 버전 및 패키지 버전을 다시 만들어야하므로 세부 정보를 기록해야합니다. 추가 안전을 위해 특정 프로젝트 / 종이에 대해 이전 R 버전 및 패키지를 보관해야합니다. 실제로 많은 사람들이 이것을합니다.
R
작업에서이 상태는에서 찾을 수 있습니다.Random.seed
. 가장 큰 관심사R
는 일부 루틴이이를 회피 할 수 있다는 것set.seed
입니다. 경우에 따라 완전히 무시할 수도 있습니다.