Problema
Vorrei verificare se esiste un elemento di una lista, ecco un esempio
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
In questo esempio, so che foo$a
esiste, ma il test ritorna FALSE
.
Ho guardato dentro ?exists
e ho scoperto che with(foo, exists('a')
ritorna TRUE
, ma non capisco perché exists('foo$a')
ritorni FALSE
.
Domande
- Perché
exists('foo$a')
ritornaFALSE
? - Viene utilizzato
with(...)
l'approccio preferito?
foo <- list(a1=1)
!is.null(foo$a)
(o!is.null(foo[["a"]])
per essere al sicuro)? (oexists("a",where=foo)
)