On 12-09-28 11:51 PM, Qiang Wang wrote:
In the following test, the variable x is supposed to be modified within the
function test.save.x. It works as expected util using the save command.

# initialize x.file
x <- 1
save(x, file="x.file")
rm(x) # Remove x from R_GlobalEnv
exists("x") # FALSE

# define test
test.save.x <- function(){
save.x <- function(){
save(x, file="x.file")
}
  change.x <- function(){
load("x.file", parent.frame(n = 2)) # load x to upper level frame

The upper level frame is globalenv(), so this is the line that creates x.

x <<- x + 1
save.x() # If comment this line. x variable will not appear in R_GlobalEnv

This comment is false. save.x() doesn't create any new variable, it just creates a file.


}
  change.x()
}

test.save.x()
exists("x") # TRUE. Why?

Because you created it by your call to load().

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
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