breaks
Erin Hodgess wrote:
Dear R People: I have a question about a "sorting" problem, please. I have a vector xx:
xx
[1] -2.0 1.4 -1.2 -2.2 0.4 1.5 -2.2 0.2 -0.4 -0.9 and a vector of breaks:
xx.y
[1] -2.2000000 -0.9666667 0.2666667 1.5000000 I want to produce another vector z which contains the number of the class that each data point is in. for instance, xx[1] is between xx.y[1] and xx.y[2], so z[1] == 1 this can be accomplished via loops, but I was wondering if there is a more efficient method, please. By the way, eventually, there will be many more data points and more classes.
I think what you're looking for is ?cut: R> xx = c(-2.0, 1.4, -1.2, -2.2, 0.4, 1.5, -2.2, 0.2, -0.4, -0.9) R> cut(xx, breaks = c(-Inf, -2.2, -0.97, 0.27, 1.5, Inf)) [1] (-2.2,-0.97] (0.27,1.5] (-2.2,-0.97] (-Inf,-2.2] (0.27,1.5] [6] (0.27,1.5] (-Inf,-2.2] (-0.97,0.27] (-0.97,0.27] (-0.97,0.27] Levels: (-Inf,-2.2] (-2.2,-0.97] (-0.97,0.27] (0.27,1.5] (1.5,Inf] R> Regards, Sundar