[R] Question about cut()

Ben Bolker bbolker at gmail.com
Tue Dec 14 16:55:15 CET 2010


Tianchan Niu <niu <at> isis.georgetown.edu> writes:

> 
> Dear all,
> I would like to use cut() to make numerics to factors, the sample codes are as
follows. However, the result is
> not what I want, since r[3] = 9 should be in the interval of "8-10%" rather
than "2-4%". Maybe cut() is not
> the right function to use for my situation. Please help. > r <- c(1,1,9,1,1,1)
> > col_no <- as.factor(as.numeric(cut(r,c(0,2,4,6,8,10,100))))
> > levels(col_no) <- c("<2%","2-4%","4-6%","6-8%","8-10%",">10%")
> > col_no
> [1] <2%  <2%  2-4% <2%  <2%  <2% 
> Levels: <2% 2-4% 4-6% 6-8% 8-10% >10%Thanks,
> Tianchan

  I think you're making the problem a little harder than it needs to be ...

r <- c(1,1,9,1,1,1)
col_no <- cut(r,c(0,2,4,6,8,10,100),
              labels = c("<2%","2-4%","4-6%","6-8%","8-10%",">10%"))


[1] <2%   <2%   8-10% <2%   <2%   <2%  
Levels: <2% 2-4% 4-6% 6-8% 8-10% >10%



More information about the R-help mailing list