On 02/05/2016 05:25 PM, Duncan Murdoch wrote:
On 05/02/2016 11:14 AM, Jinsong Zhao wrote:
Dear there,

Here is a snipped code,

  > rm(list = ls())
  > x <- 123
  > save.image("abc.RData")
  > rm(list = ls())
  > load("abc.RData")
  > sample(10)
   [1]  3  7  4  6 10  2  5  9  8  1
  > rm(list = ls())
  > load("abc.RData")
  > sample(10)
   [1]  3  7  4  6 10  2  5  9  8  1

you will see that, after loading a abc.RData file that is saved by
save.image(), sample(10) gives the same results. I am wondering whether
it's designed purposely. And if it is, how can I get a different results
of sample(10) every time after loading the saved image?

This happens because you are reloading the random number seed.  You can
tell R to ignore it by calling

set.seed(NULL)

just after you load the image.  See ?set.seed for more details.

Duncan Murdoch


Based on your problem description, it seems that you actually do not want to restore the whole workspace but only the objects that you worked with. If this is indeed the case, it is much better to use save(list=ls(), file = "abc.RData") instead of save.image("abc.RData"). (Actually it is almost always better to use an explicitly parametrized save() call instead of save.image()).

save.image() can cause a lot of troubles besides the one you faced recently (which is caused due to the save and restore of the .Random.seed hidden object, as Duncan mentioned).

Cheers,
Denes




______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to