从 R 中的工作区中删除用户定义的对象

Jesse John 2023年1月30日
  1. 使用 rm() 函数从 R 中的工作区中删除用户定义的对象
  2. 使用 R Studio 界面从 R 中的工作区中删除用户定义的对象
  3. 结论
从 R 中的工作区中删除用户定义的对象

我们的数据分析可能会创建许多占用内存的对象。本文介绍如何使用 rm() 函数和 R Studio 的 Environment 选项卡从 R 中的工作区中删除用户定义的对象。

使用 rm() 函数从 R 中的工作区中删除用户定义的对象

在我们的 R 脚本中,我们可以使用 rm()remove() 函数来删除对象。这两个功能是相同的。

我们可以将要删除的对象指定为变量、字符串或提供给 list 参数的字符向量。

示例代码:

# Make several objects.
a = 1:10
b = 11:20
c = c(a,b)
df1 = data.frame(a, b)
x = a
y = b
z = c
df2 = data.frame(x, y)
df3 = cbind(df1, df2)

# Lists the objects in the top level (global) environment.
ls()

# Remove one object.
# Specify as a variable.
rm(a)
# Check the list.
ls()

# Remove another object.
# Specify as a string.
rm("b")
# Check the list.
ls()

# Remove multiple objects as variables.
rm(x, y)
# Check the list.
ls()

# Remove multiple objects as strings.
rm("df1", "df2")
# Check the list.
ls()

# Remove multiple objects by providing a character vector to list.
rm(list = c("c", "z"))
# Check the list.
ls()

输出:

> # Lists the objects in the top level (global) environment.
> ls()
[1] "a"   "b"   "c"   "df1" "df2" "df3" "x"   "y"   "z"
>
> # Remove one object.
> # Specify as a variable.
> rm(a)
> # Check the list.
> ls()
[1] "b"   "c"   "df1" "df2" "df3" "x"   "y"   "z"
>
> # Remove another object.
> # Specify as a string.
> rm("b")
> # Check the list.
> ls()
[1] "c"   "df1" "df2" "df3" "x"   "y"   "z"
>
> # Remove multiple objects as variables.
> rm(x, y)
> # Check the list.
> ls()
[1] "c"   "df1" "df2" "df3" "z"
>
> # Remove multiple objects as strings.
> rm("df1", "df2")
> # Check the list.
> ls()
[1] "c"   "df3" "z"
>
> # Remove multiple objects by providing a character vector to list.
> rm(list = c("c", "z"))
> # Check the list.
> ls()
[1] "df3"

我们可以通过将 ls() 函数的输出提供给 rm() 函数的 list 参数来一次删除所有用户定义的对象。

该文档指定该操作将在没有警告的情况下执行,并建议用户除非确定,否则不应使用它。

示例代码:

# Again create some objects.
A = 100:110
B = 200:210
DF1 = data.frame(A, B)

# Check the list of objects.
ls()

# Remove all user-defined objects.
rm(list = ls())
# Check the list of objects.
ls()

输出:

> # Check the list of objects.
> ls()
[1] "A"   "B"   "DF1" "df3"
>
> # Remove all user-defined objects.
> rm(list = ls())
> # Check the list of objects.
> ls()
character(0)
注意
这些函数不会分离我们使用 library() 函数加载的包。我们可以使用 detach() 函数来分离我们不再需要的包。

使用 R Studio 界面从 R 中的工作区中删除用户定义的对象

R Studio 可以非常方便地从内存中删除用户定义的对象。

R Studio 界面的右上角面板有一个环境选项卡,其中列出了所有用户定义的对象。

在第一行图标中,请注意中间的扫帚图标和远端的网格或列表下拉选择器,就在刷新按钮之前。我们需要选择 Grid 来控制我们从工作区中删除哪些对象。

在第二行图标中,请注意标签 Global Environment

当我们在第一行图标中选择 Grid 时,我们会得到列名。注意所有列名前面的选择框和列表中每个对象的选择框。

R Studio 环境选项卡

我们可以通过单击扫帚图标来移除对象。可用的不同选项如下。

  • 未选择任何对象时单击扫帚图标将删除所有用户定义的对象,包括隐藏对象(选择器出现在确认对话框中)。

  • 选择一个或多个对象并单击扫帚图标将删除所选对象。

  • 通过单击列名称列表中的选择器选择所有对象,然后单击扫帚图标将删除列表中所有可见(和选择)的对象。

  • 要保留一个或多个对象并删除所有其他对象,我们可以手动取消选择这些对象,或者我们可以执行以下操作:

  • 单击列名行中的选择器以选择所有对象。

  • 取消选择我们要保留的对象。

  • 点击扫帚图标。只有未选择的对象将保留。

结论

我们可以使用 rm() 函数从工作区中删除用户定义的对象。R Studio 的环境选项卡使这项任务变得更容易。

作者: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

相关文章 - R Object