从 R 中的工作区中删除用户定义的对象
![从 R 中的工作区中删除用户定义的对象](/img/R/feature-image---remove-user-defined-objects-from-the-workspace-in-r.webp)
我们的数据分析可能会创建许多占用内存的对象。本文介绍如何使用 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 时,我们会得到列名。注意所有列名前面的选择框和列表中每个对象的选择框。
我们可以通过单击扫帚图标来移除对象。可用的不同选项如下。
-
未选择任何对象时单击扫帚图标将删除所有用户定义的对象,包括隐藏对象(选择器出现在确认对话框中)。
-
选择一个或多个对象并单击扫帚图标将删除所选对象。
-
通过单击列名称列表中的选择器选择所有对象,然后单击扫帚图标将删除列表中所有可见(和选择)的对象。
-
要保留一个或多个对象并删除所有其他对象,我们可以手动取消选择这些对象,或者我们可以执行以下操作:
-
单击列名行中的选择器以选择所有对象。
-
取消选择我们要保留的对象。
-
点击扫帚图标。只有未选择的对象将保留。
结论
我们可以使用 rm()
函数从工作区中删除用户定义的对象。R Studio 的环境选项卡使这项任务变得更容易。