[R] Finding which seed resulted in a specific sample

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Apr 13 12:25:17 CEST 2015

On 13/04/2015 10:12, Isabel Natario wrote:
> Hello!
> I was wanting to find out which random seed could generate the characters
> in the word "love", for example, when I sample with replacement from the
> vector of the letters. So I've written the code below:
> seed=0
> set.seed=0
> x<-sample(letters,4,replace=T)
> while (sum(x==c("l","o","v","e"))<4){
> seed<-seed+1
> set.seed=seed
> x<-sample(letters,4,replace=T)
> }
> When I run this code I always get that the final x vector is
> c("l","o","v","e"), but afterwards, when I try to set.seed iqual to the
> value stored in object "seed" I can never reproduce this vector
> c("l","o","v","e"), by doing sample(letters,4,replace=T). Why is that?

Because you never called the function set.seed(): assigning to a 
variable of that name does not help.

Also, there are far more values of the underlying seed than can be set 
using set.seed(), so this approach will not always work.  However

seed <- 0L
x <- sample(letters,4L,replace=T)
while (sum(x == c("l","o","v","e"))<4L){ # I would have used identical()
   seed <- seed+1L
   x <- sample(letters,4L,replace=T)

gave me an answer (543867)

> Thank you very much,
> Isabel Natario
> --
> Dep. Matemática
> Faculdade de Ciências e Tecnologia
> Universidade Nova de Lisboa
> 2829-516 Caparica, Portugal
> icn at fct.unl.pt

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford
1 South Parks Road, Oxford OX1 3TG, UK

More information about the R-help mailing list