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()))
删除。我尝试通过更改环境来修复它,但它不起作用。
有什么提示吗?
您需要确保您的所有搜索(ls
、lsf.str
、rm
)都在全局环境中查找:
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=
提醒)
我想使用自定义函数将我的 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()))
删除。我尝试通过更改环境来修复它,但它不起作用。
有什么提示吗?
您需要确保您的所有搜索(ls
、lsf.str
、rm
)都在全局环境中查找:
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=
提醒)