R - 在函数内保存图像未加载

R - Saving image within function is not loading

下面的代码可以用现有的 SoStuck 对象加载:

Im <- c(1,2,3,4)
Stuck <- c(6,7,8,9)
SoStuck <- data.frame(Im, Stuck)
save.image("image.RData")

然后我退出这个会话并开始另一个会话。我这样做:

load("image.RData")

有效:

SoStuck
   Im  Stuck
1  1     6
2  2     7
3  3     8
4  4     9

但是,如果我这样做:

myfunction <- function()
{
  Im <- c(1,2,3,4)
  Stuck <- c(6,7,8,9)
  SoStuck <- data.frame(Im, Stuck)
  save.image("image.RData")
}
myfunction()

重启R,加载再调用没有找到对象:

load("image.RData")
SoStuck
Error: object 'SoStuck' not found

我也在那个循环中尝试了 return(save.image("image.RData")) 并得到了同样的错误。

如果文件保存在函数中,有人知道我需要更改什么才能加载文件吗?谢谢。

根据 save.image 的文档,"save.image() is just a short-cut for ‘save my current workspace’, i.e., save(list = ls(all.names = TRUE), file = ".RData", envir = .GlobalEnv)."

因此,为了让您的功能正常工作,您可以像这样修改代码:

myfunction <- function()
{
  Im <- c(1,2,3,4)
  Stuck <- c(6,7,8,9)
  SoStuck <- data.frame(Im, Stuck)
  save(list = ls(all.names = TRUE), file = "image.RData", envir = 
  environment())
}
myfunction()

load("image.RData")