2014-04-01 28 views
1

我想将全局工作区图像保存在R函数中,但正在运行到一个范围界定问题。这里有一个如何这可能工作的例子:如何将工作区图像保存到R函数中的指定位置

rm(list=ls()) 

SaveData <- function(fname) { 
    # I have to use save instead of save.image due to separate constraints 
    save(list=ls(), file=fname, envir=.GlobalEnv) 
} 

# Test 
x <- 1 
SaveData("~/SaveDataTest.RData") 

rm(list=ls()) 
load("~/SaveDataTest.RData") 
ls() # Would look for this to include x 

SaveData("~/SaveDataTest.RData")线虽然引发以下错误:

Error in save(list = ls(), file = fname, envir = .GlobalEnv) : 
object ‘fname’ not found 

这表明,我认为通过envir=.GlobalEnvsave功能的全功能的环境切换到。 GlobalEnv。我怎么能解决这个问题?

+0

为什么你指定'envir'? 'ls()'似乎是多余的。至少它适用于我,如果我删除'envir'。这与save.image()有什么不同? –

+1

删除'envir'只会保存该函数的工作区。关于'save.image()',我正在处理单独的技术限制(在这里描述的过于单调),这限制了我'保存'。 –

+0

具体来说,你会看到如果你删除'envir',最后的'ls()'调用将不会显示'x'。 –

回答

1

更换list=ls() + envir=.GlobalEnvlist=ls(.GlobalEnv)作品:

SaveData <- function(fname) { 
    save(list=ls(.GlobalEnv), file=fname) 
} 
相关问题