R-alpha: jpn() port
Kurt Hornik
Kurt.Hornik@ci.tuwien.ac.at
Mon, 14 Apr 1997 10:04:34 +0200
>>>>> Peter Dalgaard BSA writes:
> Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at> writes:
>> Finally, here's something that's also been on my mind for some time now
>> (and also needed help in the port). Code like
>>
>> if(all(names(x)) == c("x", "y"))
>>
>> fails if names(x) is NULL. Is that really necessary? (More precisely,
>> obviously we only want to test whether the two objects have equal
>> values, a la Lisp `equal').
> According to my parenthesis count, that expression will fail in any
> case!
Yes ... I meant
if(all(names(x) == c("x", "y")))
> However, I get your drift. Splus has
>> all(NULL)
> [1] T
>> any(NULL)
> [1] F
> Which makes sense for cases like yours. R should probably conform to
> this.
Actually, I am not sure about that, but it does not solve the problem.
If you look at the code in the S jpn package, it contains
if(all(names(region) == c("x", "y")))
If region has no names attribute,
all(names(region) == c("x", "y"))
gives NA and if(NA) (correctly) gives ``Error: Missing value where
logical needed''. The problem is that NULL == something gives NA.
(Should it really do that?)
But perhaps it is better anyway to force the programmer to check for
NULL values before comparisons ...
-k
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
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
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-