我觉得奇怪,甚至有可能:
> 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'
答案 0 :(得分:1)
当变量名部分匹配时,您可以指定在warn=2
中返回参数为options
的错误
options(warnPartialMatchDollar = TRUE, warn = 2)