On Thu, 2003-10-02 at 12:40, morozov wrote: > Dear All: > I'd like to know how to sort and then index a vector of floats by several > levels in R. > For example > > > >x<-rnorm(100) > > MyLevels<-quantile(x,probs=c(0,.5,1)) > > MyLevels > 0% 50% 100% > -2.11978442 -0.03770613 2.00186397 > > next i want to replace each x[i] in x by 1,2,3 or 4 depending on which > quantile that x[i] falls. How do I do that in a "vector" fashion? > > I tried something like > > >factor(x,levels=as.numeric(MyLevels)) > > but that doesnt work. > > > Thank you very much, > Vlad
You might want to look at ?cut, which returns a factor based upon defining breakpoints in a continuous vector. You can break the vector 'x' and relabel the levels to give you what you need. For example: x <- rnorm(100) MyLevels <- factor(cut(x, quantile(x), include.lowest = TRUE), labels = 1:4) table(MyLevels) MyLevels 1 2 3 4 25 25 25 25 HTH, Marc Schwartz ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help