Depende de cómo ejecutará el código o si hay algún código que sea algo estocástico, ya que dibuja números aleatorios de manera aleatoria. (Un ejemplo de esto son las pruebas de permutación en nuestro paquete vegano en las que solo continuamos permutando hasta que hayamos acumulado suficientes datos para saber si un resultado es diferente del error de Tipo I establecido teniendo en cuenta una tasa de error de Tipo II). Aunque incluso eso no debería afectar los sorteos ...
Si el script final solo se ejecutará como un trabajo por lotes o en su totalidad y no hay dibujos estocásticos del generador de números pseudoaleatorios, entonces es seguro establecer una semilla en la parte superior del script y ejecutarlo en su totalidad .
Si desea recorrer el código, quizás volver a ejecutar bloques, entonces necesita una set.seed()
llamada antes de cada llamada de función que se extraerá del generador de números pseudoaleatorios.
Para mis trabajos científicos, rutinariamente me pongo súper defensivo y establezco semillas antes de cada fragmento de código; esto permite actualizaciones en el script en una fecha posterior que podría necesitar insertarse en el script existente en cualquier momento, por ejemplo, para responder a los comentarios de los revisores o coautores.
Con suerte, sus resultados no dependerán de un conjunto particular de valores pseduo-aleatorios, por lo que el problema es poder reproducir los valores exactos establecidos en un informe o documento. Aunque puede ser súper defensivo y establecer una semilla en cada fragmento de código, es posible que deba volver a crear la instalación exacta: la versión R y las versiones del paquete, por lo que es esencial registrar esos detalles. Para estar más seguro, necesitará mantener versiones y paquetes de R anteriores para proyectos / documentos específicos. De hecho, muchas personas hacen esto.
R
trabajo, este estado se puede encontrar en.Random.seed
. Mi mayor preocupaciónR
es que algunas rutinas podrían eludir esto, y tal vez podrían ignorar porset.seed
completo en algunos casos.