我在R控制台中加载了不同类型的对象。我可以使用以下命令将它们全部删除
rm(list=ls())
或者只删除函数(而不是变量),使用
rm(list=lsf.str())
我的问题是:有没有办法删除除函数之外的所有变量
发布于 2011-11-29 20:48:57
发布的setdiff
答案很不错。我想我应该把我前段时间写的这个相关函数贴出来。它的有用性取决于读者:-)。
lstype<-function(type='closure'){
inlist<-ls(.GlobalEnv)
if (type=='function') type <-'closure'
typelist<-sapply(sapply(inlist,get),typeof)
return(names(typelist[typelist==type]))
}
发布于 2017-10-26 04:47:23
您可以使用以下命令清除所有变量。要小心,因为这样你就无法找回你的变量。
rm(list=ls(all=TRUE))
发布于 2014-06-23 12:55:32
这是我在某个地方学到的一个非常方便的函数,并做了一些调整。保存在目录中可能会更好。
list.objects <- function(env = .GlobalEnv)
{
if(!is.environment(env)){
env <- deparse(substitute(env))
stop(sprintf('"%s" must be an environment', env))
}
obj.type <- function(x) class(get(x, envir = env))
foo <- sapply(ls(envir = env), obj.type)
object.name <- names(foo)
names(foo) <- seq(length(foo))
dd <- data.frame(CLASS = foo, OBJECT = object.name,
stringsAsFactors = FALSE)
dd[order(dd$CLASS),]
}
> x <- 1:5
> d <- data.frame(x)
> list.objects()
# CLASS OBJECT
# 1 data.frame d
# 2 function list.objects
# 3 integer x
> list.objects(env = x)
# Error in list.objects(env = x) : "x" must be an environment
https://stackoverflow.com/questions/8305754
复制相似问题