RE: [R] if(foo == TRUE) .. etc

From: Liaw, Andy <andy_liaw_at_merck.com>
Date: Sat 23 Apr 2005 - 03:41:08 EST


> From: bogdan romocea
>
> Great suggestion; it made me change all my Ts/Fs to TRUE/FALSE.
> Given
> F <- TRUE
> T <- FALSE
> is it possible to forbid T to stand for TRUE, and F for FALSE in
> function(...,something=T)?
> Or, alternatively, never allow F <- whatever and T <- whatever?
>
> I don't know what the technical side is, but I think it would be much
> better if this particular blunder (major, yet rather easy to overlook)
> was impossible to make.

R FAQ 3.3, bullet #3:

In R, T and F are just variables being set to TRUE and FALSE, respectively, but are not reserved words as in S and hence can be overwritten by the user. (This helps e.g. when you have factors with levels "T" or "F".) Hence, when writing code you should always use TRUE and FALSE.

If T and F are changed as you suggested above, it will break S compatibility in lots of code.

Andy    

>
> -----Original Message-----
> From: Martin Maechler [mailto:maechler@stat.math.ethz.ch]
> Sent: Wednesday, April 20, 2005 8:31 AM
> To: R-help@stat.math.ethz.ch
> Subject: [R] if(foo == TRUE) .. etc
>
>
> >>>>> "Andy" == Andy Bunn <abunn@whrc.org>
> >>>>> on Tue, 19 Apr 2005 10:27:04 -0400 writes:
>
> .....
> Andy> is.tuesday <- as.POSIXlt(Sys.time())$wday == 2
> Andy> if (is.tuesday == T) { ....}
> .....
>
> aaah, this really hurts my eyes or rather the brain behind!
> And it's by far not the first such instance...
>
> Rather use " if (is.tuesday) { .... } "
>
> More generally, please, please, everyone :
>
> Replace
> if (something == TRUE)
> with if (something)
> and
> if (something.or.other == FALSE)
> with if (!something.or.other)
>
> {and even more for cases where you have
> 'T' and 'F' instead of 'TRUE' and 'FALSE' -
> which is against all recommendations, since
> F <- TRUE
> T <- FALSE
> are valid statements, probably not common, but think what
> happens when you accidentally have the equivalent of "T <- 0"
> somewhere in your global enviroment!
> }
>
> Martin Maechler, ETH Zurich
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
>
>



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sat Apr 23 03:48:58 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:22 EST