问题
我想测试列表中的元素是否存在,这是一个示例
foo <- list(a=1)
exists('foo')
TRUE #foo does exist
exists('foo$a')
FALSE #suggests that foo$a does not exist
foo$a
[1] 1 #but it does exist
在此示例中,我知道foo$a
存在,但是测试返回FALSE
。
我看了看,?exists
发现with(foo, exists('a')
退货了TRUE
,但是不明白为什么exists('foo$a')
退货FALSE
。
问题
- 为什么要
exists('foo$a')
退货FALSE
? - 是否使用
with(...)
首选方法?
foo <- list(a1=1)
!is.null(foo$a)
(或!is.null(foo[["a"]])
为了安全起见)?(或exists("a",where=foo)
)