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$atồn tại, nhưng kiểm tra trả về FALSE.
Tôi đã xem xét ?existsvà 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))