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

Dou*_*Fir 0 r

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

我有一个数据框x,我想保留,同时从内存中删除其他所有内容.我怎样才能做到这一点?

rm(list = ls(!x)) #???
Run Code Online (Sandbox Code Playgroud)

Qwf*_*qwf 7

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

根据mickey的评论编辑:

环境中的三个对象:

ls()
[1] "data_df" "list_ls" "vector_v"
Run Code Online (Sandbox Code Playgroud)

删除data_df:

rm(list = setdiff(ls(), "data_df"))
ls()
[1] "data_df"
Run Code Online (Sandbox Code Playgroud)

要保持的矢量:

toKeep_v <- c("list_ls", "vector_v")
rm(list = setdiff(ls(), toKeep_v)
ls()
[1] "list_ls" "vector_v"
Run Code Online (Sandbox Code Playgroud)

  • 如果x是数据框的名称,则它应该用引号括起来. (5认同)