[R] all(logical(0)) and any(logical(0))

Liaw, Andy andy_liaw at merck.com
Thu Apr 15 16:40:41 CEST 2004

Dear R-help,

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?

The problem surfaced because some un-named individual called randomForest(x,
y, xtest, ytest,...), and gave y as a two-level factor, but ytest as just
numeric vector.  I thought I check for that in my code by testing for

if (!all(levels(y) == levels(ytest))) stop(...)

but levels() on a non-factor returns NULL, and the comparison ended up being
logical(0).  Since all(logical(0)) is TRUE, the error is not flagged.


Andy Liaw, PhD
Biometrics Research      PO Box 2000, RY33-300     
Merck Research Labs           Rahway, NJ 07065
mailto:andy_liaw at merck.com        732-594-0820

Notice:  This e-mail message, together with any attachments,...{{dropped}}

More information about the R-help mailing list