清除除一个变量之外的所有内容 rm(list = ls()) [重复]

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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"

以上是关于清除除一个变量之外的所有内容 rm(list = ls()) [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Linux Centos 删除除某(多)个文件之外的所有文件

如何在循环中保存除一个变量之外的所有变量?

删除除文件扩展名之外的所有内容[重复]

正则表达式:匹配除一个单词之外的所有内容[重复]

R中的常用命令(持续更新)

rm(list=ls()) 没有完全清除工作区