rm( ) 除特定对象外的所有内容
rm( ) everything except specific object
有人知道如何删除 R 中除一个对象以外的所有内容吗?通常,要删除我编写的所有代码:
rm(list=ls())
所以我尝试了:
rm(c(list=ls()-my_object))
但是没用。
setdiff()
函数显示集合之间的差异,所以我们可以用这个来给出所有对象(ls()
)和你想要保留的对象之间的差异。例如
## create some objects
df <- data.frame()
v <- as.numeric()
# show everything in environment
objects()
# [1] "df" "v"
## or similarly
ls()
# [1] "df" "v"
## the setdiff() funciton shows the difference between two sets
setdiff(ls(), "df")
# [1] "v"
# so we can use this to remove everything except 'df'
rm(list = setdiff(ls(), "df"))
objects()
# [1] "df"
虽然很久以前就有人问过。我的回答将来可能会帮助其他人,
假设您想从环境中删除除 obj1
和 obj2
之外的所有内容
x<- which(ls()=="obj1"|ls()=="obj2")
ls1<- ls()[-x]
rm(list = ls1)
我这样做的方式与其他人几乎相同,但我通常倾向于使用逻辑索引...
对于单个对象,使用逻辑索引
rm(list=ls()[ls()!= "object_I_want"])
或者这适用于多个对象,即使它 returns 一条错误消息
rm(list=ls()[ls()!= c("object_I_want1", "object_I_want2")])
如果您在工作区中只有几个对象,您可以计数并使用它们的数字索引
ls();
#returns all objects in alphabetical order
# [1] "object_I_dont_want" "object_I_want" "object_I_dont_want"
rm(list=ls()[-2])
从技术上讲,您不需要使用 ls()。如果出于任何原因您需要保留 运行 个要保留的对象的总数,或者您已经有一组要保留或删除的对象,或者其他任何原因,您可以使用独占列表有点像这样
*虽然从技术上讲它也会保留用作子集索引的对象。
exsubset = ls()[ls()!= c("object.I.want1", "object_I_want2")];
rm(list=exsubset)
有人知道如何删除 R 中除一个对象以外的所有内容吗?通常,要删除我编写的所有代码:
rm(list=ls())
所以我尝试了:
rm(c(list=ls()-my_object))
但是没用。
setdiff()
函数显示集合之间的差异,所以我们可以用这个来给出所有对象(ls()
)和你想要保留的对象之间的差异。例如
## create some objects
df <- data.frame()
v <- as.numeric()
# show everything in environment
objects()
# [1] "df" "v"
## or similarly
ls()
# [1] "df" "v"
## the setdiff() funciton shows the difference between two sets
setdiff(ls(), "df")
# [1] "v"
# so we can use this to remove everything except 'df'
rm(list = setdiff(ls(), "df"))
objects()
# [1] "df"
虽然很久以前就有人问过。我的回答将来可能会帮助其他人,
假设您想从环境中删除除 obj1
和 obj2
x<- which(ls()=="obj1"|ls()=="obj2")
ls1<- ls()[-x]
rm(list = ls1)
我这样做的方式与其他人几乎相同,但我通常倾向于使用逻辑索引...
对于单个对象,使用逻辑索引
rm(list=ls()[ls()!= "object_I_want"])
或者这适用于多个对象,即使它 returns 一条错误消息
rm(list=ls()[ls()!= c("object_I_want1", "object_I_want2")])
如果您在工作区中只有几个对象,您可以计数并使用它们的数字索引
ls();
#returns all objects in alphabetical order
# [1] "object_I_dont_want" "object_I_want" "object_I_dont_want"
rm(list=ls()[-2])
从技术上讲,您不需要使用 ls()。如果出于任何原因您需要保留 运行 个要保留的对象的总数,或者您已经有一组要保留或删除的对象,或者其他任何原因,您可以使用独占列表有点像这样 *虽然从技术上讲它也会保留用作子集索引的对象。
exsubset = ls()[ls()!= c("object.I.want1", "object_I_want2")];
rm(list=exsubset)