Problem
Chciałbym sprawdzić, czy istnieje element listy, oto przykład
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
W tym przykładzie wiem, że foo$a
istnieje, ale test powraca FALSE
.
Zajrzałem ?exists
i znalazłem, że with(foo, exists('a')
powraca TRUE
, ale nie rozumiem, dlaczego exists('foo$a')
wraca FALSE
.
pytania
- Dlaczego
exists('foo$a')
wracaFALSE
? - Czy jest stosowane
with(...)
preferowane podejście?
foo <- list(a1=1)
!is.null(foo$a)
(lub!is.null(foo[["a"]])
po bezpiecznej stronie)? (lubexists("a",where=foo)
)