首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除除函数之外的所有变量

删除除函数之外的所有变量
EN

Stack Overflow用户
提问于 2011-11-29 12:13:37
回答 4查看 126.1K关注 0票数 128

我在R控制台中加载了不同类型的对象。我可以使用以下命令将它们全部删除

代码语言:javascript
复制
rm(list=ls())

或者只删除函数(而不是变量),使用

代码语言:javascript
复制
rm(list=lsf.str())

我的问题是:有没有办法删除除函数之外的所有变量

EN

回答 4

Stack Overflow用户

发布于 2011-11-29 20:48:57

发布的setdiff答案很不错。我想我应该把我前段时间写的这个相关函数贴出来。它的有用性取决于读者:-)。

代码语言:javascript
复制
lstype<-function(type='closure'){ 
    inlist<-ls(.GlobalEnv)
    if (type=='function') type <-'closure'
    typelist<-sapply(sapply(inlist,get),typeof)
    return(names(typelist[typelist==type]))
}
票数 7
EN

Stack Overflow用户

发布于 2017-10-26 04:47:23

您可以使用以下命令清除所有变量。要小心,因为这样你就无法找回你的变量。

代码语言:javascript
复制
rm(list=ls(all=TRUE))
票数 1
EN

Stack Overflow用户

发布于 2014-06-23 12:55:32

这是我在某个地方学到的一个非常方便的函数,并做了一些调整。保存在目录中可能会更好。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8305754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档