Проблема
Я хотів би перевірити, чи існує елемент списку, ось приклад
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)
)