以 R 对象是否存在为条件保存它们
Saving R objects conditional on whether they exist
在分析结束时,我想保存一些 R 环境对象。但是,我重复使用这个脚本,有时有些对象不存在。我不想每次都编辑保存语句,所以我希望脚本能够适应对象不存在的情况。不过,我正在努力让它与 exist
一起使用。
save(if(exists("object1")) {object},
if(exists("object2")) {object2},
file = "./my_saved_environment/saved_objects.RData")
使用 save(file=...)
和一个字符向量,intersect
使用您想要的变量。例如:
ls()
# [1] "airquality" "aqm" "dat" "mydata"
intersect(ls(), c("mydata", "quux"))
# [1] "mydata" # quux does not exist
save(list = intersect(ls(), c("mydata", "quux")), file = "quux.rda")
如果我们查看 .rda
文件,这就是保存的内容:
e <- new.env(parent = emptyenv())
load("quux.rda", envir = e)
ls(envir = e)
# [1] "mydata"
您还可以形成要以编程方式保存的对象列表,也许使用 grep("^mydata.*", ls(), value=TRUE)
或类似方法。
在分析结束时,我想保存一些 R 环境对象。但是,我重复使用这个脚本,有时有些对象不存在。我不想每次都编辑保存语句,所以我希望脚本能够适应对象不存在的情况。不过,我正在努力让它与 exist
一起使用。
save(if(exists("object1")) {object},
if(exists("object2")) {object2},
file = "./my_saved_environment/saved_objects.RData")
使用 save(file=...)
和一个字符向量,intersect
使用您想要的变量。例如:
ls()
# [1] "airquality" "aqm" "dat" "mydata"
intersect(ls(), c("mydata", "quux"))
# [1] "mydata" # quux does not exist
save(list = intersect(ls(), c("mydata", "quux")), file = "quux.rda")
如果我们查看 .rda
文件,这就是保存的内容:
e <- new.env(parent = emptyenv())
load("quux.rda", envir = e)
ls(envir = e)
# [1] "mydata"
您还可以形成要以编程方式保存的对象列表,也许使用 grep("^mydata.*", ls(), value=TRUE)
或类似方法。