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

时间:2019-02-13 23:09:01

标签: r

我觉得奇怪,甚至有可能:

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

理想情况下,如果有人尝试访问列表元素并且该元素不存在,我想强制执行该错误。如果结果为NULL,我什至可以。但是显然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       

我知道,它是旧的R版本。我们的模型已经投入生产,似乎无意在不久的将来升级Prod R版本。


更新: 找到了一种将部分匹配转换为警告的方法:

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

1 个答案:

答案 0 :(得分:1)

当变量名部分匹配时,您可以指定在warn=2中返回参数为options的错误

options(warnPartialMatchDollar = TRUE, warn = 2)