访问不存在的列表元素时如何强制错误或'NULL'?



我发现这是可能的:

> x <- list(abc = 2, def = 4)
> x$a
[1] 2

理想情况下,如果某人试图访问列表元素并且不存在该元素,我想强制错误。如果结果为无效,我什至会没事的。但是显然R试图变得太聪明,找到类似于调用属性的另一个字段。

我尝试查看options,但似乎没有选择更改列表访问行为的选项。

预先感谢。

> R.version
               _                           
platform       x86_64-apple-darwin13.4.0   
arch           x86_64                      
os             darwin13.4.0                
system         x86_64, darwin13.4.0        
status                                     
major          3                           
minor          2.3                         
year           2015                        
month          12                          
day            10                          
svn rev        69752                       
language       R                           
version.string R version 3.2.3 (2015-12-10)
nickname       Wooden Christmas-Tree       

我知道,这是一个旧版本。我们的模型正在生产中,似乎很快就无意升级产品版本。


更新:找到了将部分匹配变成警告的方法:

> options(warnPartialMatchDollar = TRUE)
> x$a
[1] 2
Warning message:
In x$a : partial match of 'a' to 'abc'

当有变量名称的部分匹配

时,您可以指定options中的参数warn=2返回错误
options(warnPartialMatchDollar = TRUE, warn = 2)

最新更新