[ad_1]
Quer compartilhar seu conteúdo em R-bloggers? clique aqui se você tiver um blog, ou aqui se não tiver.

Se você precisar descobrir se uma chamada de função em R gerou um número aleatório ou não, aqui está um truque simples que você pode usar em uma sessão R interativa. Adicione o seguinte ao seu ~/.Rprofile
if (interactive()) { invisible(addTaskCallback(local({ lastIt works by checking whether or not the state of the random number generator (RNG), that is,
.Random.seed
in the global environment, was changed. If it has, a note is produced. For example,> sum(1:100) [1] 5050 > runif(1) [1] 0.280737 NOTE: .Random.seed changed >:
rank()
Nem sempre é óbvio que uma função gera números aleatórios internamente. Por exemplo, oties
função pode ou não atualizar o estado RNG dependendo do argumento> x rank(x) [1] 1.0 2.5 2.5 4.0 > rank(x, ties.method = "random") [1] 1 3 2 4 NOTE: .Random.seed changed >conforme ilustrado no exemplo a seguir:
> y yPara algumas funções, pode até depender dos dados de entrada se números aleatórios são gerados ou não, por exemplo
Eu tenho este rastreador RNG habilitado o tempo todo para aprender sobre funções que inesperadamente desenham números aleatórios internamente, o que pode ser importante saber quando você executa análises estatísticas em paralelo. Como um bônus, se você tiver o GIS de cera
pacote instalado, o rastreador RNG produzirá a nota com um estilo menos intrusivo. Se você usar o
~/.Rprofile.d/interactive=TRUE/rng_tracker.R
comece pacote, você pode adicioná-lo a um novo arquivo . Para saber mais sobre o comecepacote, dê uma olhada nas postagens do blog sobrecomece
.
Relacionados
[ad_2]