[R] Classifying values in vector

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Wed Aug 17 18:55:03 CEST 2005



mark salsburg wrote:
> I have a vector of size 217 called "A".
> 
> the values of A are not sorted and range from 0 to 1 (normalized)
> 
> I am having difficulty writing a program to create a new vector "B" where
> 
> if A's value is 0< A <=0.333 then B is 0
> if A's value is 0.333< A <=0.666 then B is 1
> if A's value is 0.666< A <=1 then B is 2
> 
> so if A is
> 
> 0.22
> 0.999
> 0.444
> 0
> 
> B would be
> 
> 0
> 2
> 1
> 0
> 
> thank you,

Sounds like you are looking for ?cut:

 > A <- runif(217)
 > B <- cut(A, c(0, 1/3, 2/3, 1), labels = c(0, 1, 2))
 > # convert factor to numeric
 > as.numeric(levels(B)[B])

HTH,

--sundar




More information about the R-help mailing list