The any() function is descripted with "Given a set of logical vectors, is at least one of the values true?" while the all() function says "Given a set of logical vectors, are all of the values true?" This means that everything that returns TRUE in all() should return TRUE in any(), too. But see here:
all(NULL == "Yes")
[1] TRUE
any(NULL == "Yes")
[1] FALSE
I know that there is the is.null() function which gives same result for all(is.null(NULL)) and any(is.null(NULL)). But is.null() is not what I need to use in my case. I am working on a function which contains user choices. Those choices can be a predefined word or NULL (if no choice is made). Of course I can revalue NULL internally to a word (i.e. "no_choice") but still, why is this happening that any() returns FALSE? Besides, the question is not that much about is.null() since NULL == 1 gives logical(0) same paradox situation is true for:
all(logical(0))
[1] TRUE
any(logical(0))
[1] FALSE
THIS IS A DUPLICATE
Found a question asking same paradox. I can not mark as duplicate (or do not know how).