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% ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.