我发现这是可能的:
> 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)