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

rm()和rm(list=ls())之间有什么区别?,r,R,大多数文章,我都读过。他们建议使用rm(list=ls()),但如果我喜欢使用rm() a <-45 rm(a) 如果要清除所有变量,是否可以使用rm()而不是rm(list=ls()) a <-45

大多数文章,我都读过。他们建议使用
rm(list=ls())
,但如果我喜欢使用
rm()

a <-45                                                                          
rm(a)
如果要清除所有变量,是否可以使用
rm()
而不是
rm(list=ls())

a <-45                                                                          
rm(a)
请给我一些建议。谢谢。

命令
rm(list=ls())
从当前工作区(R内存)中删除所有对象,而
rm()
本身不起任何作用。您必须指定要删除的内容。比如说,

a<-1
rm(a)
a <-45                                                                          
rm(a)
将仅从内存中删除对象
a
,但保持对象
b
不变。以下内容将同时删除
a
b

a<-1
b<-2
rm(list=ls())
a <-45                                                                          
rm(a)
a
rm()
基本上是“删除{base}”,它用于从指定环境中删除对象

a <-45                                                                          
rm(a)
命令
rm(list=ls())
表示-

a <-45                                                                          
rm(a)
list=ls()

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

a <-45                                                                          
rm(a)
但是,, 当涉及到单独使用
rm()
时,它不会做任何事情,因为没有“基础”

a <-45                                                                          
rm(a)
您可以使用
rm()
将特定变量作为“基”删除到:

a <-45                                                                          
rm(a)
例如

a <-45                                                                          
rm(a)

一个
rm()
本身不会做任何事情。请尝试查看
?rm
?ls
。如果执行
ls()
,它将列出全局环境中的变量。要清除R内存,我应该使用gc(),对吗?它是否需要使用gc(list=ls())?
gc()
用于垃圾收集,这迫使R释放它可能仍然保留的操作系统内存。有关详细信息,请参见R中的
?gc()
。为了学究式,rm(list=ls())不会删除以
开头的对象。这些可以通过rm(list=ls(all.names=TRUE))删除,但我更愿意重新启动RTH。目前的答案并不正确。该命令只会从执行该命令的环境中的符号列表中删除(非“点”)对象。它不会从内存中删除“所有对象”,我认为这对于新用户来说可能是一个令人困惑的答案。它使用术语“base”,这也是R程序的核心名称空间的名称
rm()
base
-命名空间中的对象不执行任何操作。