如何检查R环境是否存在

Mat*_*olo 5 r

我想检查是否存在R环境,但标准exists()函数不接受环境作为参数:

storage <- new.env(parent = emptyenv())

storage
#<environment: 0xeb3195c>

exists(storage)
#Error in exists(storage) : invalid first argument
Run Code Online (Sandbox Code Playgroud)

有没有办法检查环境是否已定义?或者这是一个本质上错误的事情?谢谢!

Pey*_*ton 11

exists 采用角色参数:

exists("storage")
Run Code Online (Sandbox Code Playgroud)

虽然注意TRUE即使storage不是环境也会返回.您将要么使用is.environmentSeñorO建议进行检查,要么通过mode="environment":

exists("storage", mode="environment")
Run Code Online (Sandbox Code Playgroud)


Señ*_*r O 6

除非我遗漏了什么,否则我想:

is.environment(storage)
Run Code Online (Sandbox Code Playgroud)

会做同样的事情.返回TRUE它是否是一个环境,FALSE如果它不是(即使该对象存在但是是另一个类).