[R] if statement error

Lucke, Joseph F Joseph.F.Lucke at uth.tmc.edu
Tue Oct 17 20:17:07 CEST 2006


Jenny

This following example works: 
> real.d <- rep(NA,30)
> real.b <- rep(NA,30)
> b1=runif(1); b2=runif(1); t1=runif(1); t2=runif(1)
> if (length(real.d)>=30 && length(real.b)>=30 &&
b1*b2*t1*t2>0){bool=TRUE}
> bool
[1] TRUE

But this one doesn't:
> real.d <- rep(NA,30)
> real.b <- rep(NA,30)
> b1=runif(1); b2=runif(1); t1=runif(1); t2=NA
> if (length(real.d)>=30 && length(real.b)>=30 &&
b1*b2*t1*t2>0){bool=TRUE}
Error in if (length(real.d) >= 30 && length(real.b) >= 30 && b1 * b2 *
: 
        missing value where TRUE/FALSE needed
>  

NA's in the vector make no difference.  && is correct.
So, it appears at least one of your scalars is missing

JFL

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Jenny Stadt
Sent: Tuesday, October 17, 2006 12:19 PM
To: r-help at stat.math.ethz.ch
Subject: [R] if statement error

Hi List,

I was not able to make this work. I know it is a simple one, sorry to
bother. Give me some hints pls. Thanks!

Jen





if(length(real.d)>=30 && length(real.b)>=30 &&
beta1*beta2*theta1*theta2>0 )

{ r <- 1;  corr <- 1;  }


real.d and real.b are two vectors, beta1,beta2,theta1,and theta2 are
constants. The error occurred like this:


Error in if (length(real.d) >= 30 && length(real.b) >= 30 && beta1 *
beta2 *  : 
        missing value where TRUE/FALSE needed

	[[alternative HTML version deleted]]

______________________________________________
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
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list