Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查R环境是否存在_R - Fatal编程技术网

如何检查R环境是否存在

如何检查R环境是否存在,r,R,我想检查R环境是否存在,但标准exists()函数不接受环境作为参数: storage <- new.env(parent = emptyenv()) storage #<environment: 0xeb3195c> exists(storage) #Error in exists(storage) : invalid first argument exists("storage") 存储除非我遗漏了什么,否则我只想: is.environment(storage)

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

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

storage
#<environment: 0xeb3195c>

exists(storage)
#Error in exists(storage) : invalid first argument
exists("storage")

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

is.environment(storage)

我也会做同样的事情。如果是环境,则返回
TRUE
;如果不是环境,则返回
FALSE
(即使对象存在但属于另一个类)。

存在
采用字符参数:

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

storage
#<environment: 0xeb3195c>

exists(storage)
#Error in exists(storage) : invalid first argument
exists("storage")
但请注意,即使
存储
不是环境,也会返回
TRUE
。您必须使用Señ或O建议的
is.environment
检查它,或者传递
mode=“environment”


仅仅是我还是第二种解决方案不起作用

is.evironment()
如果使用有效的环境作为参数,则在我的手中生成TRUE。一旦您尝试插入一个非环境,它就会尝试在当前环境中查找具有此名称的变量,并返回如下内容

> is.environment(a)
  Error: object 'a' not found

…当然,引用也不起作用,因为在这种情况下,它将始终是一个字符串(因此,如果引用现有环境的名称,则不会出现错误,但始终为FALSE)<代码>存在(“x”,mode=“environment”)
是一条路。

哎呀,那太尴尬了。无论如何都要感谢您,当我收到错误时,我错误地认为这是因为exists()不适用于环境。当我看到错误时,首先要阅读函数帮助页面的用法部分。仔细注意描述第一个论点的词语往往包含答案。