[R] ifelse()

Jason Turner jasont at indigoindustrial.co.nz
Wed Mar 26 11:49:27 CET 2003


On Wed, Mar 26, 2003 at 11:20:04PM +1200, Ko-Kang Kevin Wang wrote:
> Hi,
> 
> I'm not sure if this can be done but..
> 
> I know that with ifelse() I can do something like:
>   ifelse(x <= 3, 1, 2)
> to go through each element in my vector x, and if x_i <= 3 substitute the 
> number with 1 else with 2.  Essentially I'll get a vector with 2 levels.
> 
> Can I tweak it so I can get 3-levels?  For example:
>   if(x <= 3) then 1
>   elseif(3 < x <= 4) then 2
>   elseif(x > 4) then 3

You can, like this (1 if zz < 5, 2 if  5 <= zz < 10, 3 if zz >= 10) 
> zz <- 1:20
> ifelse(zz < 5, 1, ifelse(zz < 10, 2,3))
 [1] 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3

Cheers

Jason
-- 
Indigo Industrial Controls Ltd.
64-21-343-545
jasont at indigoindustrial.co.nz



More information about the R-help mailing list