清除除一个变量之外的所有内容 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()) [重复]的主要内容,如果未能解决你的问题,请参考以下文章