[R] Warning: condition has length > 1

Chuck Cleland ccleland at optonline.net
Sat Oct 8 15:23:44 CEST 2005


nawaf b 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
> + }

?ifelse

myfunction <- function(x){ifelse(x >= 1, 0, x^2)}

 > myfunction(c(.3, 1, .7, 22))
[1] 0.09 0.00 0.49 0.00

>>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 
> 
> 
> Is there a way to overcome this issue? Can you please explain what
> modifications to the code I need to accommodate to make it work.
> 
> Thanks,
> 
> Nawaf
> 
> ______________________________________________
> 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
> 

-- 
Chuck Cleland, Ph.D.
NDRI, Inc.
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 452-1424 (M, W, F)
fax: (917) 438-0894




More information about the R-help mailing list