проблема
Я хотел бы проверить, существует ли элемент списка, вот пример
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)
)