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

Petr PIKAL petr.pikal at precheza.cz
Tue Aug 3 13:15:30 CEST 2010


Hi

r-help-bounces at r-project.org napsal dne 03.08.2010 13:03:33:

> 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?

Your function takes only one scalar argument so you can not use it on 
vector.

Hint. Look at See also help page of if command.

Regards
Petr

> 
> 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 at fgv.br
> pablo.cerdeira at gmail.com
> +55 (21) 3799-6065
> 
> ______________________________________________
> R-help at r-project.org 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