我有一个有很多对象的工作空间,我想删除所有的,但只有一个。理想情况下,我希望避免键入rm(obj。1、obj.2……obj.n)。是否有可能指示删除除这些对象之外的所有对象?
当前回答
下面是一个简单的构造,通过使用setdiff来实现:
rm(list=setdiff(ls(), "x"))
这是一个完整的例子。运行此程序的风险由你自己承担——它将删除除x之外的所有变量:
x <- 1
y <- 2
z <- 3
ls()
[1] "x" "y" "z"
rm(list=setdiff(ls(), "x"))
ls()
[1] "x"
其他回答
下面是一个简单的构造,通过使用setdiff来实现:
rm(list=setdiff(ls(), "x"))
这是一个完整的例子。运行此程序的风险由你自己承担——它将删除除x之外的所有变量:
x <- 1
y <- 2
z <- 3
ls()
[1] "x" "y" "z"
rm(list=setdiff(ls(), "x"))
ls()
[1] "x"
要保存对象列表,可以使用:
rm(list=setdiff(ls(), c("df1", "df2")))
我认为另一种选择是在RStudio中打开工作区,然后将列表更改为环境右上角的网格(如下图)。然后勾选要清除的对象,最后单击“清除”。
下面的操作将从控制台删除所有对象
rm(list = ls())
让我们换个角度思考,如果我们想移除一个基团呢? 试试这个,
rm(list=ls()[grep("xxx",ls())])
我个人不喜欢屏幕上有太多的表格和变量,但我无法避免使用它们。所以我把临时的东西命名为“xxx”开头,这样我就可以在它不再使用后删除它们。