[R] The condition has length > 1 and only the first element will be used

Pablo Cerdeira pablo.cerdeira at gmail.com
Tue Aug 3 13:03:33 CEST 2010


Hi All,

I'm trying to run the following script in R, but I'm getting a warning saying:

Warning message:
In if (z < 0) { :
  the condition has length > 1 and only the first element will be used

As you can see, I'm sending a vector x to the function f without any
problem. The function f calculates the y value for each x.

But the function f needs to convert the x to positive values (the mod
function). And when it tries to convert, it always uses the first
value of x.

What I'm doing wrong here?

mod = function(x) {
  if (x < 0) {
    mod <- x*(-1)
  }
  else {
    mod <- x
  }
}
f = function(x) {
  f <- mod(x)/x
}
x <- seq(-1,1,0.01)
x
y <- f(x)
y
plot(f,xlim = c(-1,1))
remove(x,y,f,mod)

best regards,

-- 
Pablo de Camargo Cerdeira
pablo em fgv.br
pablo.cerdeira em gmail.com
+55 (21) 3799-6065



More information about the R-help mailing list