Skip to content
Back to formatted view

Raw Message

Message-ID: <43036BE7.1080508@pdf.com>
Date: 2005-08-17T16:55:03Z
From: Sundar Dorai-Raj
Subject: Classifying values in vector
In-Reply-To: <dd48e20f050817094848c213b0@mail.gmail.com>

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