[Rd] Saving nothing with save()
Simon Urbanek
simon.urbanek at r-project.org
Mon Dec 19 16:38:34 CET 2011
Martin,
On Dec 19, 2011, at 6:39 AM, Martin Maechler wrote:
>>>>>> Barry Rowlingson <b.rowlingson at lancaster.ac.uk>
>>>>>> on Sun, 18 Dec 2011 01:32:52 +0000 writes:
>
>> Scenario: Here I am working away in R. I've got results
>> that prove global warming is anthropogenic and also the
>> solution for producing limitless carbon-neutral energy
>> from nuclear fusion. Its been a good day.
>
>> So, I want to save my work. I don't want to overwrite my
>> current .RData, so I save it to another file:
>
>> save(file="prize.RData") # just need to email this to the
>> Nobel committee q() Save workspace image? [y/n/c]: - "no"
>> I don't want to save the workspace image, I just saved
>> everything to "prize.RData". But gee, it did seem to do
>> that quite quickly considering the volume of evidential
>> data in my work. My unix shell prompt returns.
>
>> Uh oh. See what I did there? I typed 'save' when I meant
>> 'save.image'. What does that give me?
>
>> A 42 byte, empty, latest.RData, and because there was no
>> warning or error I quit without saving it
>> again. Oops. Massive Data Loss.
>
>> Is there any reason why save(file="file.RData") couldn't
>> warn or error if you try and save nothing? There's no
>> obvious check in the R code for save.
>
>> Barry
>
>> PS the above scenario is fictional.
> really? ;-)
>
> well, after *not* save()ing all your findings, it wouldn't have
> been such a good day, would it?
>
> well, in spite of that.
> I agree that save() should warn or stop in that case.
> I have now committed a version -- to R-devel only --
> which stop()s if 'pretest=TRUE' and uses warning() otherwise,
I don't think I like that - why should it warn/stop in any case even when the use is absolutely legal?
I think this is the wrong approach - the whole idea was to warn on unintended *interactive* use - breaking existing code in the process is IMHO not necessary. I don't think
save(list=x, file=y)
should fail even if x is empty - that makes it fail for completely legal code. What Barry was worried about was the interactive case of
save(file=x)
which should IMHO warn (there is a precedent for stopping as well - see tar - so I won't object).
I really see no reason for adding the pretest flag - it makes no sense since is warns anyway so it doesn't help at all. I would propose changing *only* the behavior of save(file=x) (to warn or stop - personally I prefer former) and not anything else.
> e.g., in the case of save.image() when there's nothing to save.
>
Why should save.image() warn? Again, it causes unnecessary trouble for automated saving... empty workspace is probably even more common that using save(file=foo) ... If save() was fixed as above, that would be a non-issue.
> Thank you, Barry. for the suggestion!
Well, you did not follow his suggestion, though ;)
Cheers,
Simon
> Martin
>
>> When did I last have a good day?
>
> (I wish you more of those..)
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
More information about the R-devel
mailing list