[R] does save.image() also save the random state?

Dénes Tóth
2016-02-05T16:49:50Z

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 at 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.