Re: [R] recategorizing a vector into discrete states

2005-08-16 Thread Achim Zeileis
On Tue, 16 Aug 2005 13:18:23 -0400 Allan Strand wrote:

 Hi All,
 
 I'm trying to take a numerical vector  and  produce a new vector of
 the same length where each element in the first is placed into a
 category given by a 'breaks-like' vector. The values in the result
 should equal the lower bounds of each category as defined in the
 breaks vector.
 
   I suspect that a vectorized solution  is pretty simple, but I can't 
 seem to figure it out today.  Here is an example of my problem:
 
 Vector 'a' is the original vector.  Vector 'b' gives the lower bounds 
 of the categories.  Vector 'c' is the result I am seeking.
 
 a - c(0.9, 11, 1.2, 2.4, 4.0, 5.0, 7.3, 8.1, 3.3, 4.5)
 b - c(0, 2, 4, 6, 8)
 
 c - c(0, 8, 0, 2, 4, 4, 6, 8, 2, 4)
 
 Any suggestions would be greatly appreciated.

cut(a, c(b, Inf), labels = b)

which returns a factor.
Z 

 cheers,
 Allan Strand
 
 __
 R-help@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


__
R-help@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


Re: [R] recategorizing a vector into discrete states

2005-08-16 Thread Marc Schwartz (via MN)
On Tue, 2005-08-16 at 13:18 -0400, Allan Strand wrote:
 Hi All,
 
 I'm trying to take a numerical vector  and  produce a new vector of the 
 same length where each element in the first is placed into a category 
 given by a 'breaks-like' vector. The values in the result should equal 
 the lower bounds of each category as defined in the breaks vector.
 
   I suspect that a vectorized solution  is pretty simple, but I can't 
 seem to figure it out today.  Here is an example of my problem:
 
 Vector 'a' is the original vector.  Vector 'b' gives the lower bounds 
 of the categories.  Vector 'c' is the result I am seeking.
 
 a - c(0.9, 11, 1.2, 2.4, 4.0, 5.0, 7.3, 8.1, 3.3, 4.5)
 b - c(0, 2, 4, 6, 8)
 
 c - c(0, 8, 0, 2, 4, 4, 6, 8, 2, 4)
 
 Any suggestions would be greatly appreciated.
 
 cheers,
 Allan Strand

See ?cut

 a - c(0.9, 11, 1.2, 2.4, 4.0, 5.0, 7.3, 8.1, 3.3, 4.5)
 b - c(0, 2, 4, 6, 8)

 cut(a, c(b, Inf), labels = b, right = FALSE)
 [1] 0 8 0 2 4 4 6 8 2 4
Levels: 0 2 4 6 8

Note that cut() returns a factor.

HTH,

Marc Schwartz

__
R-help@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