我有一个有很多对象的工作空间,我想删除所有的,但只有一个。理想情况下,我希望避免键入rm(obj。1、obj.2……obj.n)。是否有可能指示删除除这些对象之外的所有对象?
当前回答
我认为另一种选择是在RStudio中打开工作区,然后将列表更改为环境右上角的网格(如下图)。然后勾选要清除的对象,最后单击“清除”。
其他回答
下面的操作将从控制台删除所有对象
rm(list = ls())
将v替换为要保留的对象的名称
rm(list=(ls()[ls()!="v"]))
hat-tip: http://r.789695.n4.nabble.com/Removing-objects-and-clearing-memory-tp3445763p3445865.html
require(gdata)
keep(object_1,...,object_n,sure=TRUE)
ls()
要保留所有名称与模式匹配的对象,可以使用grep,如下所示:
to.remove <- ls()
to.remove <- c(to.remove[!grepl("^obj", to.remove)], "to.remove")
rm(list=to.remove)
从函数内部,rm .GlobalEnv中除函数外的所有对象
initialize <- function(country.name) {
if (length(setdiff(ls(pos = .GlobalEnv), "initialize")) > 0) {
rm(list=setdiff(ls(pos = .GlobalEnv), "initialize"), pos = .GlobalEnv)
}
}