rm()和rm(list = ls())有什么区别?

问题描述 投票:5回答:2

大多数文章,我都读过。他们建议使用rm(list=ls()),但我不知道如果我喜欢使用rm()有什么区别

如果我想清除所有变量,我可以使用rm()而不是rm(list=ls())吗?

请给我一些建议。谢谢。

r
2个回答
12
投票

命令rm(list=ls())从当前工作空间(R内存)中删除所有对象,而单独的rm()不执行任何操作。您必须指定rm()要删除的内容。例如,

a<-1
rm(a)

将从您的工作区中删除对象a。相反,

a<-1
b<-2
rm(a)

将从内存中删除对象a,但保持对象b不变。以下将删除ab

a<-1
b<-2
rm(list=ls())

rm(list=ls())rm(a, b)更容易编写,a也会从你的环境中移除brm(a,b,c,d,e,f,g,h),并扩展到任意数量的对象。想象一下,按名称删除100个对象:rm()等等......

您可以使用参数listls()提供一堆要删除的对象。因为rm()list当前工作空间中的所有对象,并且您将其指定为要删除的对象列表,所以上述命令将从R存储器中删除所有对象。


2
投票

rm(list=ls())基本上是'remove {base}',它用于从指定环境中删除对象。

命令list=ls()指 -

rm()是此命令的基础,表示您指的是工作空间中存在的所有对象。

类似地,当您使用list=ls()作为基础时,rm()用于从工作空间中删除所有对象。

然而,当单独使用rm()时,它不会做任何事情,因为“基础”不存在。

您可以使用a <-45 rm(a) 删除特定变量,方法是将它们设置为“base”:

例如

qazxswpoi
© www.soinside.com 2019 - 2024. All rights reserved.