[R] Warning: condition has length > 1

Gabor Grothendieck
2005-10-08T13:24:29Z

ifelse(x >= 1, 0, x^2)

or

(x >= 1) * x^2

Also, you might need x > (1 - e) where e is some small number since your
numbers may not be exact.



On 10/8/05, nawaf b <talda at hotmail.com> wrote:
> Hi -
>
> I was wondering if anyone came across a problem such as mine! I was trying
> to create a user-defined function, however, the results from calling the
> function are unexpected!
>
> When passing X parameter as a single value variable (x<-c(3)),
everything
> works fine. However, when passing a parameter as a vector with multiple
> values (as the case in my code), the 'if condition' is only
executed once!
>
> Here is my code:
> > x
> [1]  0.3  1.0  0.7 22.0
> > myfunction<-function(x)
> + {
> + if (x>=1) 0
> + else x^2
> + }
> > myfunction(x)
> [1]   0.09   1.00   0.49 484.00
> Warning message:
> the condition has length > 1 and only the first element will be used in:
if
> (x >= 1) 0 else x^2
> >