R 如果使用美元运算符时环境不包含符号,如何引发错误?

R 如果使用美元运算符时环境不包含符号,如何引发错误?,r,R,此代码 e <- new.env() print(e$notexistent) e可能stopifnot(exists(“notexistent”,e))?@AllanCameron我不是这个意思。我希望它自动发生。也就是说,如果我试图访问一个不存在的符号,这显然是一个错误。我不希望它给我空值,以便我可以尝试执行空值而不是函数。您是否询问此处是否有更改R默认行为的设置?您可以使用get函数而不是$函数访问元素。ieget(“nonexistent”,e)@StefanoBorini既然你

此代码

e <- new.env()
print(e$notexistent)

e可能
stopifnot(exists(“notexistent”,e))
?@AllanCameron我不是这个意思。我希望它自动发生。也就是说,如果我试图访问一个不存在的符号,这显然是一个错误。我不希望它给我空值,以便我可以尝试执行空值而不是函数。您是否询问此处是否有更改R默认行为的设置?您可以使用
get
函数而不是
$
函数访问元素。ie
get(“nonexistent”,e)
@StefanoBorini既然你提到想要一个模块系统,请查看我相应的项目,特别是新的API:……与其重复工作,也许我们可以集中资源。此外,关于这个主题的更多信息:如果未定义
bar
,则使用我的代码,
foo$bar
会引发错误。您可以通过重写
$
(但不幸的是,只针对自定义类!)自己完成这项工作。可能
停止ifnot(exists(“notexistent”,e))
?@AllanCameron这不是我的意思。我希望它自动发生。也就是说,如果我试图访问一个不存在的符号,这显然是一个错误。我不希望它给我空值,以便我可以尝试执行空值而不是函数。您是否询问此处是否有更改R默认行为的设置?您可以使用
get
函数而不是
$
函数访问元素。ie
get(“nonexistent”,e)
@StefanoBorini既然你提到想要一个模块系统,请查看我相应的项目,特别是新的API:……与其重复工作,也许我们可以集中资源。此外,关于这个主题的更多信息:如果未定义
bar
,则使用我的代码,
foo$bar
会引发错误。您可以通过重写
$
(但不幸的是,这只适用于自定义类!)自己完成。