以下代码可以使用现有的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"))
并得到相同的错误。
如果文件保存在函数中,任何人都知道我需要更改加载文件吗?感谢。
答案 0 :(得分:2)
根据save.image
的文档,&#34; save.image()只是“保存我当前工作空间”的捷径,即save(list = ls(all.names = TRUE) ),file =&#34; .RData&#34;,envir = .GlobalEnv)。&#34;
因此,要使您的功能正常工作,您可以像这样修改代码:
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")