[R] if syntax error :(

Rolf Turner rolf at erdos.math.unb.ca
Tue Jun 13 22:14:02 CEST 2006


H. Paul Benton wrote:

> Umm sorry to bother everyone again but I'm having trouble with my if
> statement. I come from a perl background so that's probably my problem! :)
> So here is my code:
> 
> if (any(lgAB>4) | any(lgAB<-4)){
> 	freq_AB<-hist(lgAB, type="o", plot=F)
> 	else
> 	freq_AB<-hist(lgAB, breaks=br,type ="o", plot=F)
> }
> 
> And I get 
> > source("E:/R/GMDA-1.1.R")
> Error in parse(file, n = -1, NULL, "?") : syntax error at
> 11:             freq_AB<-hist(lgAB, type="o", plot=F)
> 12:             else
> >

No-one yet has pointed out the following problem, which, while not be
a syntax error as such, will cause you headaches:

	if (any(lgAB>4) | any(lgAB<-4)){
                              ^^^^^^^

This assigns the value 4 to lgAB (which is presumably NOT what
you want to do).  You want ``any(lgAB < -4)''.

General rule:  Put in spaces around operators --- it makes the
code (much) more readable and avoids unintended consequences.

Another infelicity in your code: ``plot=F''.  Use ``plot=FALSE''.
(Note that the symbols ``F'' and ``T'' are assignable, *unlike*
``TRUE'' and ``FALSE''.)

				cheers,

					Rolf Turner
					rolf at math.unb.ca



More information about the R-help mailing list