[R] all(logical(0)) and any(logical(0))
Richard A. O'Keefe
ok at cs.otago.ac.nz
Fri Apr 16 02:42:08 CEST 2004
"Liaw, Andy" <andy_liaw at merck.com> wrote:
I was bitten by the behavior of all() when given logical(0): It
is TRUE! (And any(logical(0)) is FALSE.) Wouldn't it be better
to return logical(0) in both cases?
It would be disastrous. For all integer n >= 0,
all(integer(n) == integer(n)) => TRUE
any(integer(n) != integer(n)) => FALSE
Your proposal would give wrong answers for n == 0.
For any simple array (who knows what an arbitrary object will do?)
we expect all(x == x) => TRUE, any(x != x) => FALSE. If this were
changed for empty x, we'd never be able to trust any() or all() again.
Find a book about logic and read how bounded quantification
(\forall x \in set) p(x)
(\exists x \in set) p(x)
is supposed to work when the set is empty.
More information about the R-help