我想从工作区中删除一些数据。我知道“全部清除”按钮将删除所有数据。但是,我想删除某些数据。
例如,我在数据部分中有这些数据框:
data
data_1
data_2
data_3
我希望删除data_1
,data_2
和data_3
,同时保留data
。
我尝试了data_1 <- data_2 <- data_3 <- NULL
,它确实删除了数据(我认为),但仍然将其保留在工作空间区域中,所以它不完全是我想做的。
答案 0 :(得分:214)
您可以通过输入?rm
rm(data_1, data_2, data_3)
答案 1 :(得分:63)
删除一整套类似命名的对象的有用方法:
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))
答案 2 :(得分:14)
以下命令将执行
rm(list=ls(all=TRUE))
答案 3 :(得分:7)
使用以下命令
remove(list=c("data_1", "data_2", "data_3"))
答案 4 :(得分:4)
您可以使用apropos
函数来查找使用部分名称的对象。
rm(list = apropos("data_"))
答案 5 :(得分:3)
如果您只想删除一组变量中的一个,那么您可以创建一个列表并保留您需要的变量。 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()
答案 6 :(得分:2)
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
答案 7 :(得分:2)
如果您正在使用RStudio,请考虑从不使用rm(list = ls())
方法!* 相反,您应该经常使用Ctrl
+ {{1 }} Shift
快捷方式重启您的R会话。这是同时修改当前用户定义变量集并清除加载的包,设备等的最快方法。通过采用这种习惯,您工作的可重复性将显着提高。
请参阅Rstudio社区的this excellent thread(h / t @kierisi)进行更全面的讨论(主要要点是我已经说明的内容)。
我必须承认我自己的前几年R编码特色脚本在脚本开始后使用F10
“技巧” - 我正在写这个答案作为建议任何可能正在开始他们的R职业的人
*当然有合法的用途 - 就像rm
一样 - 但是开始用户会更好地服务(IMO)以后越过那座桥。
答案 8 :(得分:1)
清除所有数据:
点击Misc>Remove all objects
。
你很高兴。
清除控制台:
点击edit>Clear console
。
无需任何代码。
答案 9 :(得分:1)
在RStudio中,确保Environment
标签处于Grid
(而非List
)模式。
勾选要从环境中删除的对象。
单击扫帚图标。
答案 10 :(得分:0)
你也可以使用 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")))