2

我正在尝试测试列表是否包含对象(github源)。到目前为止,此is.null功能一直有效,除非我正在测试一个名称与非 nul 项目部分匹配的项目。

x <- list(ab = 1)

is.null(x$ab)
[1] FALSE     ## expected
is.null(x$b)
[1] TRUE      ## expected
is.null(x$c)     
[1] TRUE      ## expected
is.null(x$a)
[1] FALSE     ## unexpected 

这是is.null函数的预期行为吗?我在文档中看不到任何指示。

使用该exists功能或​​其他方法会更好吗?(我没有使用过exists,因为它不会像for(i in 'a') is.null(x[[i]]).

4

1 回答 1

7

x$a1由于部分名称匹配而返回。因为 R 与 匹配,所以is.null(x$a)也是如此。如果你使用符号,你会得到预期的结果:.FALSEaab[[is.null(x[['a']])

于 2013-06-27T17:24:25.770 回答