首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rm()和rm(list=ls())有什么区别?

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

Stack Overflow用户
提问于 2017-04-28 13:41:43
回答 2查看 57.1K关注 0票数 15

大部分文章,我都读过了。他们推荐使用rm(list=ls()),但我不知道如果我喜欢使用rm()有什么不同

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

请给我一些建议。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-04-28 14:07:43

rm(list=ls())命令会从当前工作区(R内存)中移除所有对象,而rm()命令本身不会执行任何操作。你必须向rm()指定你想要移除的东西。例如,

代码语言:javascript
复制
a<-1
rm(a)

将从您的工作区中删除object a。相比之下,

代码语言:javascript
复制
a<-1
b<-2
rm(a)

将只从内存中删除对象a,但保持对象b不变。下面的命令将同时删除ab

代码语言:javascript
复制
a<-1
b<-2
rm(list=ls())

rm(list=ls())rm(a, b)更容易编写,后者也从您的环境中删除了ab,并且可以扩展到任意数量的对象。想象一下按名称删除100个对象:rm(a,b,c,d,e,f,g,h)等等……

您可以使用参数listrm()提供一组要删除的对象。由于ls()列出了当前工作空间中的所有对象,并且您将其指定为要删除的对象列表,因此上述命令将从R内存中删除所有对象。

票数 17
EN

Stack Overflow用户

发布于 2018-03-28 00:26:48

rm()基本上就是'remove{base}',它用于从指定的环境移除对象。

rm(list=ls()) means的命令-

在此命令中,list=ls()是基础,这意味着您引用的是工作区中存在的所有对象。

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

然而,当涉及到单独使用rm() 时,它不会做任何事情,因为没有‘基础’。

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

例如

代码语言:javascript
复制
a <-45                                                                          
rm(a)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43672774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档