我想从工作区中删除一些数据。我知道“清除所有”按钮将删除所有数据。但是,我只想删除某些数据。
例如,我在数据部分中有这些数据框:
data
data_1
data_2
data_3
我想删除data_1
,data_2
和data_3
, 同时保留data
.
我试过data_1 <- data_2 <- data_3 <- NULL
了,它确实删除了数据(我认为),但仍将其保留在工作区中,所以这不是我想要做的。
我想从工作区中删除一些数据。我知道“清除所有”按钮将删除所有数据。但是,我只想删除某些数据。
例如,我在数据部分中有这些数据框:
data
data_1
data_2
data_3
我想删除data_1
,data_2
和data_3
, 同时保留data
.
我试过data_1 <- data_2 <- data_3 <- NULL
了,它确实删除了数据(我认为),但仍将其保留在工作区中,所以这不是我想要做的。
您将通过键入找到答案?rm
rm(data_1, data_2, data_3)
删除一整套类似名称的对象的有用方法:
rm(list = ls()[grep("^tmp", ls())])
从而删除名称以字符串“tmp”开头的所有对象。
编辑:遵循 Gsee 的评论,利用pattern
论点:
rm(list = ls(pattern = "^tmp"))
编辑:回答 Rafael 评论,仅保留对象子集的一种方法是使用特定模式命名要保留的数据。例如,如果您想删除名称不以您开头的所有对象,paper
请发出以下命令:
rm(list = grep("^paper", ls(), value = TRUE, invert = TRUE))
以下命令会做
rm(list=ls(all=TRUE))
使用以下命令
remove(list=c("data_1", "data_2", "data_3"))
您可以使用apropos
用于使用部分名称查找对象的功能。
rm(list = apropos("data_"))
在 RStudio 中,确保Environment
选项卡处于Grid
(不是List
)模式。
勾选要从环境中移除的对象。
单击扫帚图标。
如果您只想删除一组变量中的一个,那么您可以创建一个列表并仅保留您需要的变量。rm 函数可用于删除除“数据”之外的所有变量。这是脚本:
0->data
1->data_1
2->data_2
3->data_3
#check variables in workspace
ls()
rm(list=setdiff(ls(), "data"))
#check remaining variables in workspace after deletion
ls()
#note: if you just use rm(list) then R will attempt to remove the "list" variable.
list=setdiff(ls(), "data")
rm(list)
ls()
paste0("data_",seq(1,3,1))
# makes multiple data.frame names with sequential number
rm(list=paste0("data_",seq(1,3,1))
# above code removes data_1~data_3
如果您使用的是 RStudio,请考虑永远不要使用该rm(list = ls())
方法!*相反,您应该围绕经常使用 ++ 快捷方式重新启动 R 会话来构建您的Ctrl
工作流程Shift
。F10
这是核对当前用户定义变量集和清除加载的包、设备等的最快方法。通过采用这种习惯,您的工作的可重复性将显着提高。
请参阅(h/t @kierisi) 的 Rstudio 社区上的这个出色的帖子,以进行更彻底的讨论(主要要点已被我已经陈述过)。
我必须承认我自己最初几年的 R 编码特色脚本以rm
“技巧”开头——我写这个答案是为了给其他可能开始 R 职业生涯的人提供建议。
*当然,这有合法的用途——很像attach
——但新手用户将在以后越过这座桥得到更好的服务(IMO)。
清除所有数据:
点击Misc>Remove all objects
。
你很高兴。
要清除控制台:
点击edit>Clear console
。
不需要任何代码。
你也可以使用 tidyverse
# to remove specific objects(s)
rm(list = ls() %>% str_subset("xxx"))
# or to keep specific object(s)
rm(list = setdiff(ls(), ls() %>% str_subset("xxx")))
添加另一种方式,使用 ls() 和 remove()
ls() 返回一个字符串向量,给出指定环境中对象的名称。
使用 ls() 创建要从环境中删除的对象列表,然后使用 remove() 将其删除。
remove(list = ls()[ls() != "data"])