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

bogdan romocea br44114 at gmail.com
Fri Apr 22 19:26:33 CEST 2005


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.



-----Original Message-----
From: Martin Maechler [mailto:maechler at stat.math.ethz.ch]
Sent: Wednesday, April 20, 2005 8:31 AM
To: R-help at stat.math.ethz.ch
Subject: [R] if(foo == TRUE) .. etc


>>>>> "Andy" == Andy Bunn <abunn at 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 at 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




More information about the R-help mailing list