# numeric(0)[FALSE] bug[let]

**Martin Maechler
**
Martin Maechler <maechler@stat.math.ethz.ch>

*Fri, 19 Dec 1997 00:15:05 +0100*

This is not a joke, but a problem appearing in real code of mine.
I used ifelse in a context which can be simplified to
R> ifelse(T, 3, NULL)
Error: incompatible types in subset assignment
R> ifelse(T, 3, numeric(0))
Error: invalid subscript type
R>
R> ifelse
function (test, yes, no)
{
ans <- test
test <- as.logical(test)
nas <- is.na(test)
ans[test] <- rep(yes, length = length(ans))[test]
ans[!test] <- rep(no, length = length(ans))[!test]
ans[nas] <- NA
ans
}
R>
R> numeric(0)[F]
Error: invalid subscript type
R> NULL[F]
NULL
R>
--------------------------------------------
whereas S-plus does as I expect:
S> ifelse(T, 3, NULL)
[1] 3
S> ifelse(T, 3, numeric(0))
[1] 3
S>
S> NULL[F]
NULL
S> numeric(0)[F]
numeric(0)
S> logical(0)[F]
logical(0)
S>
-----------------
I see an easy workaround for either fixing ifelse(.) and or
solving my problem.
However, I think
anytype(0)[FALSE] should return
anytype(0)
Martin
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._