Vấn đề
Tôi muốn kiểm tra xem một phần tử của danh sách có tồn tại hay không, đây là một ví dụ
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
Trong ví dụ này, tôi biết điều đó foo$a
tồn tại, nhưng kiểm tra trả về FALSE
.
Tôi đã xem xét ?exists
và thấy rằng with(foo, exists('a')
trả lại TRUE
, nhưng không hiểu tại sao exists('foo$a')
trả về FALSE
.
Câu hỏi
- Tại sao
exists('foo$a')
trở lạiFALSE
? - Có sử dụng
with(...)
cách tiếp cận ưa thích không?
foo <- list(a1=1)
!is.null(foo$a)
(hoặc!is.null(foo[["a"]])
ở bên an toàn)? (hoặcexists("a",where=foo)
)