R中的保存功能
Posted
技术标签:
【中文标题】R中的保存功能【英文标题】:Save-function in R 【发布时间】:2016-02-19 14:51:17 【问题描述】:我想使用自定义函数将我的 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()))
不会删除这些内容。我试图通过改变环境来修复它,但它不起作用。
有什么提示吗?
【问题讨论】:
save(list=lsf.str(),file="fun.RData")
怎么了???
看看rm
中的envir
参数
我确实使用了envir
。但它不起作用。什么是正确的论点?不是.GlobalEnv
@BenBolker 没有错。但是我经常使用这个功能,我想节省每次设置参数的时间。编辑:我知道如何重写它,但无论如何我想了解在这种情况下如何处理环境。
Tangential:这可能是一个非常好的 RStudio 插件。
【参考方案1】:
您需要确保所有搜索(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()
【讨论】:
啊我忘了最后一个envir = .GlobalEnv
。泰!【参考方案2】:
我还是不明白为什么
savefun <- function(file="fun.RData")
save(list=lsf.str(envir = .GlobalEnv), file=file)
不会更直接......(感谢@sebastian-c 的envir=
提醒)
【讨论】:
它是绝对更直接。在上面的 cmets 中,我写道:“编辑:我知道如何重写这个......”,所以我知道你的意思。对所述问题进行了很好的改进,但最终主要问题是环境。以上是关于R中的保存功能的主要内容,如果未能解决你的问题,请参考以下文章