如何从工作区中仅清除几个特定对象?

For*_*ord 148 r

我想从工作区中删除一些数据.我知道"全部清除"按钮将删除所有数据.但是,我想删除某些数据.

例如,我在数据部分中有这些数据框:

data
data_1
data_2
data_3
Run Code Online (Sandbox Code Playgroud)

我想删除data_1,data_2data_3保持data.

我试过data_1 <- data_2 <- data_3 <- NULL,它确实删除了数据(我认为),但仍然保留在工作空间区域,所以它不完全是我想要做的.

Pop*_*Pop 228

您可以通过输入找到答案 ?rm

rm(data_1, data_2, data_3)
Run Code Online (Sandbox Code Playgroud)

  • 要删除所有变量,可以使用`rm(list = ls())`. (42认同)
  • 但是如果没有命令行,你怎么能用 GUI 做呢?就像在革命R (2认同)
  • 如果我想删除名称以字母 A 开头的所有变量,例如“A001”、“A002”....“A999”,该怎么办。我不想输入这么多变量名。谢谢! (2认同)
  • 使用@mbask的答案(在下面):`rm(list = ls()[grep(“ A”,ls())])` (2认同)

mba*_*ask 68

删除整组命名相似对象的有用方法:

rm(list = ls()[grep("^tmp", ls())])
Run Code Online (Sandbox Code Playgroud)

从而删除名称以字符串"tmp"开头的所有对象.

编辑:根据Gsee的评论,利用这个pattern论点:

rm(list = ls(pattern = "^tmp"))
Run Code Online (Sandbox Code Playgroud)

编辑:回答Rafael注释,只保留对象子集的一种方法是使用特定模式命名要保留的数据.例如,如果要删除名称不以其开头的所有对象,paper则会发出以下命令:

rm(list = grep("^paper", ls(), value = TRUE, invert = TRUE))
Run Code Online (Sandbox Code Playgroud)

  • `ls`接受`pattern`参数,所以你可以简化为`rm(list = ls(pattern ="^ tmp"))` (7认同)

jaa*_*mit 15

以下命令可以

rm(list=ls(all=TRUE))
Run Code Online (Sandbox Code Playgroud)

  • 这将删除工作空间中的所有内容,而不仅仅是`data1`,`data2`和`data3`(即`data`也将被删除).如果那就是你想要的那就好了...... (2认同)
  • 如果您只想删除数据,而不是删除函数、值或其他对象(例如全局环境)怎么办? (2认同)

S. *_*awi 7

使用以下命令

remove(list=c("data_1", "data_2", "data_3"))
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以使用apropos用于使用部分名称查找对象的函数。

rm(list = apropos("data_"))
Run Code Online (Sandbox Code Playgroud)


ear*_*nal 6

  1. 在 RStudio 中,确保Environment选项卡处于Grid(not List) 模式。

  2. 勾选要从环境中移除的对象。

  3. 单击扫帚图标。