R中的保存功能

Save-function in R

我想使用自定义函数将我的 R 函数保存到文件中。我做了以下内容:

savefun <- function(){
  rm(list = setdiff(ls(), lsf.str())) # to remove all variables first
  save.image(paste0("fun",".RData"))
}

现在这两行在 global 中有效,但在函数中无效。

通过制作一些随机变量进行测试:

x <- 1243
y <- 39934934

那些没有被rm(list = setdiff(ls(), lsf.str()))删除。我尝试通过更改环境来修复它,但它不起作用。

有什么提示吗?

您需要确保您的所有搜索(lslsf.strrm)都在全局环境中查找:

x <- 1243
y <- 39934934

savefun <- function(){
  rm(list = setdiff(ls(envir = .GlobalEnv), lsf.str(envir = .GlobalEnv)), envir = .GlobalEnv) # to remove all variables first
  save.image(paste0("fun",".RData"))
}

savefun()

我还是不明白为什么

savefun <- function(file="fun.RData") {
  save(list=lsf.str(envir = .GlobalEnv), file=file)
}

再简单不过了...(感谢@sebastian-c 的 envir= 提醒)