save
and save.image
, with two main differences. First, any functions which have been mtrace
d (see the Save
and Save.pos
know how to deal with lazy-loaded objects set up via mlazy
. Save()
is like save.image()
. Save.pos(i)
saves all objects from the i
th position on the search list in the corresponding ".Rdata" file (or "all.rda" file for image-loading packages, or "*.rdb/*.rdx" for lazyloading packages). There is less flexibility in the arguments than for the system equivalents.Save()
Save.pos( pos, path, ascii=FALSE)
..mypack
if "mypack" is a maintained-package).save
Save
and Save.pos
, which is normally invisible to the user, but can be helpful if there is a failure during the save process (for example, if the system shuts down unexpectedly). The workspace image is first saved under a name such as "n.Rdata" (the name will be adapted to avoid clashes if necessary). Then, if and only if the new image file has a different checksum to the old ".Rdata" file, the old file will be deleted and the new one will be renamed ".Rdata"; otherwise, the new file will be deleted. This also means that the ".Rdata" file will not be updated at all if there have been no changes, which may save time when synchronizing file systems or backing up.
If a function f
is saved while mtrace
d and then restored into a different R session, there will be an error message when you try to run f
. Assuming that the mtrace(f,FALSE)
or mtrace(f)
if you really want to debug f
. However, you can avoid the problem in the first place by always calling Save
and Save.pos
; this is faster than manually untracing and retracing, and avoids losing any breakpoints. If you use the cd
system in mvbutils
, you will rarely need to call Save.pos
directly; cd
, move
and FF
will do it for you.
To exclude objects from saving, store their names in options( dont.save)
. The default exclusion if the option is not set, is c( ".packageName", ".SavedPlots", "last.warning", ".Traceback")
; good additions might be last.warning
and .Last.value
.
path
is normally inferred from the path
attribute of the pos
workspace. If no such attribute can be found (e.g. if the attached workspace was a list object), you will be prompted. If path
is a directory, the file will be called ".Rdata" if that file already exists, or R/all.rda
if that exists, or R/*.rbd
for lazy loads if that exists; and if none of these exist already, then the file will be called .Rdata
after all. If you specify path
, it must be a complete directory path or file path (i.e. it will not be interpreted relative to a path
attribute).save
, save.image
, mtrace
in package mlazy
Save() #
Save.pos( "package:mvbutils") # binary image of exported functions
Save.pos( 3, path="temp.Rdata") # path appended to attr( search()[3], "path")
Run the code above in your browser using DataLab