Kodu nasıl çalıştıracağınıza veya rasgele sayılar rasgele bir şekilde çizdiği için biraz stokastik olan bir kod olup olmadığına bağlıdır. (Bunun bir örneği, vegan paketimizdeki, yalnızca bir sonucun Tip II hata oranını hesaba katarak belirtilen Tip I hatadan farklı olup olmadığını bilmek için yeterli veri toplayana kadar izin vermeye devam ettiğimiz permütasyon testleridir .) çekilişleri etkilememeli ...
Son komut dosyası yalnızca bir toplu iş olarak veya bütünüyle çalıştırılacaksa ve sözde rasgele sayı üretecinden stokastik çekiliş yoksa, komut dosyasının en üstüne bir tohum koymak ve onu bütünüyle çalıştırmak güvenlidir. .
Kodda ilerlemek istiyorsanız, belki de blokları yeniden çalıştırmak set.seed()
, sözde rastgele sayı üretecinden çekilecek her işlev çağrısından önce bir çağrı yapmanız gerekir .
Bilimsel makalelerim için rutin olarak süper savunmaya geçiyorum ve her kod yığınından önce tohumlar ayarlıyorum; bu, komut dosyasının daha sonraki bir tarihte mevcut komut dosyasına eklenmesi gerekebilecek güncellemelere izin verir - diyelim ki gözden geçirenlerin veya yazarların yorumlarına yanıt verin.
Sonuçlarınız, belirli bir pseduo-rastgele değer kümesine bağlı olmayacaktır, bu nedenle sorun bir raporda veya makalede belirtilen kesin değerleri yeniden üretebilmektedir. Süper savunmacı olmanıza ve her kod yığınına bir tohum ayarlamanıza rağmen, yine de tam kurulumu yeniden oluşturmanız gerekebilir --- R sürümü ve paket sürümleri, böylece bu ayrıntıları kaydetmek önemlidir. Ekstra güvenli olmak için önceki R sürümlerini ve paketlerini belirli projeler / belgeler için saklamanız gerekir. Gerçekten, birçok insan bunu yapıyor.
R
iş için bu durum bulunabilir.Random.seed
. En büyük endişemR
, bazı rutinlerin bunu atlatması ve belki deset.seed
bazı durumlarda tamamen göz ardı edebilmesidir .