Problème
Je voudrais tester si un élément d'une liste existe, voici un exemple
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
Dans cet exemple, je sais que cela foo$a
existe, mais le test revient FALSE
.
J'ai regardé ?exists
et j'ai trouvé que les with(foo, exists('a')
retours TRUE
, mais je ne comprends pas pourquoi les exists('foo$a')
retours FALSE
.
Des questions
- Pourquoi
exists('foo$a')
revient-ilFALSE
? - L'
with(...)
approche est-elle privilégiée?
foo <- list(a1=1)
!is.null(foo$a)
(ou!is.null(foo[["a"]])
pour être du bon côté)? (ouexists("a",where=foo)
)