R 如何强制执行错误或';空';当访问不包含';不存在?

R 如何强制执行错误或';空';当访问不包含';不存在?,r,R,我觉得奇怪,这甚至是可能的: > x <- list(abc = 2, def = 4) > x$a [1] 2 我知道,这是一个旧的R版本。我们的型号正在生产中,似乎没有打算在短期内升级Prod R版本 更新: 找到了将部分匹配转换为警告的方法: > options(warnPartialMatchDollar = TRUE) > x$a [1] 2 Warning message: In x$a : partial match of 'a' to 'abc'

我觉得奇怪,这甚至是可能的:

> x <- list(abc = 2, def = 4)
> x$a
[1] 2
我知道,这是一个旧的R版本。我们的型号正在生产中,似乎没有打算在短期内升级Prod R版本


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

> 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)

使用方括号:
x[[“a”]]
我们必须更新一堆代码,但这是一个选项。我认为
$
将使用部分匹配,因此使用
[.]]
似乎是一条(正确的)道路-更多信息请参见
$``我猜是这样的。语法方面,我更喜欢美元符号。有时候我们有很多级别的列表,它很快就会变得丑陋;我发现使用括号通过嵌套列表传递名称/索引等更容易/更安全/可行
options(warnPartialMatchDollar = TRUE, warn = 2)