[R] R environment

Jean Eid jeaneid at chass.utoronto.ca
Thu Sep 1 13:10:36 CEST 2005


Thank you all for the answers. I will look into both methods for doing so.

Jean

On Thu, 1 Sep 2005, Henrik Bengtsson wrote:

> Unfortunately Duncan's suggestion to restart is probably the only way to
> go here.  I've done similar thing myself too.  What I've learned was
> that it is clever to include a so called hot-patch mechanism in your
> code, which will load R source code found in a certain directory, say,
> "hot/", once in a while (easy if you have do interations) and at the end
> of the batch code. Here is the idea (typed out of my head):
>
> patchCode <- function(path="hot", pattern="[.]R$", removeAfter=FALSE, ...) {
>    files <- list.files(pattern=pattern, path=path, full.names=TRUE);
>    for (file in files) {
>      tryCatch({
>        # You don't want you patch code to kill you batch job,
>        # if you for instance have a typo.
>        cat("Hot-path file: ", file, "\n");
>        source(file);
>        # Remove the file afterwards? Especially useful if you only
>        # want to redefine functions, and patch once.  This way you
>        # can also see what files has successfully been source():ed.
>        if (removeAfter)
>          file.remove(file);
>      }, error = function(ex) {
>        cat("Ignored error when sourcing:\n");
>        print(ex);
>      })
>    }
> } # patchCode()
>
> Then in your batch code something like this:
>
> while (!converged) {
>    # Patch the code every iteration.
>    patchCode(path="hot/", removeAfter=TRUE)
>    # The rest of your code here
> }
>
> # Put the code you want to call at the end, in a directory
> # of its own.
> patchCode(path="hot/onFinally/", removeAfter=TRUE)
> # End of your batch code
>
> Cheers
>
> Henrik
>
>
> Duncan Murdoch wrote:
> > Jean Eid wrote:
> >
> >>This is probably a weird question but I need to know if there is a way...
> >>
> >>I run an R batch job without saving the variables at each step to the
> >>disk.   Is there a way to invoke another session of R and link it to the
> >>same environment for read only.
> >>
> >>The problem is that I am running optim with every step getting the
> >>parameters into the global env using <<- However, I forgot to issue a
> >>save(list=ls(),...) right after so I can load and see how the parameters
> >>are changing. It's been couple of days and it is still running so I am
> >>hoping that I can invoke another session of R and link it to the
> >>environment of the batch session. Does this sound totally ridiculous ?
> >>
> >>it is a debian machine with R 2.1.1
> >
> >
> > If you happened to have compiled R with debug information, you might be
> > able to use gdb or another debugger to examine variables in the running
> > process, but you probably didn't, and it's probably easier to kill the
> > job, fix it, and start it again, than it would be to learn how to see
> > the active variables using gdb.
> >
> > Duncan Murdoch
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> >
> >
>
>




More information about the R-help mailing list