【问题标题】:clear everything but one variable rm(list = ls()) [duplicate]清除除一个变量之外的所有内容 rm(list = ls()) [重复]
【发布时间】:2019-04-13 08:12:56
【问题描述】:

我知道rm(list = ls()) 将清除我的工作区。

我有一个数据框 x,我想保留它,同时从内存中删除所有其他内容。我该怎么做?

rm(list = ls(!x)) #???

【问题讨论】:

    标签: r


    【解决方案1】:

    试试:rm(list = setdiff(ls(), x))

    根据米奇的评论编辑:

    环境中的三个对象:

    ls()
    [1] "data_df" "list_ls" "vector_v"
    

    删除 data_df:

    rm(list = setdiff(ls(), "data_df"))
    ls()
    [1] "data_df"
    

    要保留的东西的向量:

    toKeep_v <- c("list_ls", "vector_v")
    rm(list = setdiff(ls(), toKeep_v)
    ls()
    [1] "list_ls" "vector_v"
    

    【讨论】:

    • 如果 x 是数据框的名称,它应该用引号引起来。
    • 虽然rm 有NSE,但setdiff 没有,所以这会产生意想不到的结果,除非x"x"
    猜你喜欢
    • 2011-04-01
    • 2011-08-18
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 2019-07-21
    • 2018-01-25
    • 1970-01-01
    相关资源
    最近更新 更多