--- David Winsemius <[EMAIL PROTECTED]> wrote: > "tom soyer" <[EMAIL PROTECTED]> wrote in > news:[EMAIL PROTECTED]: > > > > John, > > > > The Excel's percentrank function works like this: > if one has a number, > > x for example, and one wants to know the > percentile of this number in > > a given data set, dataset, one would type > =percentrank(dataset,x) in > > Excel to calculate the percentile. So for example, > if the data set is > > c(1:10), and one wants to know the percentile of > 2.5 in the data set, > > then using the percentrank function one would get > 0.166, i.e., 2.5 is > > in the 16.6th percentile. > > > > I am not sure how to program this function in R. I > couldn't find it as > > a built-in function in R either. It seems to be an > obvious choice for > > a built-in function. I am very surprised, but > maybe we both missed it. > > My nomination for a function with a similar result > would be ecdf(), the > empirical cumulative distribution function. It is of > class "function" so > efforts to index ecdf(.)[.] failed for me. > > > df4$V2 > [1] 1 1 1 1 1 5 6 7 9 > > ecdf.V2<-ecdf(df4$V2) > > ecdf.V2(df4$V2) > [1] 0.2 0.2 0.4 0.4 0.5 0.6 0.7 0.8 1.0 0.9 > > Don't have Excel, but the OpenOffice.org Calc > program has the same > function. It produces: > x percentrank(x) > 1 0.0000000 > 1 0.0000000 > 3 0.2222222 > 3 0.2222222 > 4 0.4444444 > 5 0.5555556 > 6 0.6666667 > 7 0.7777778 > 10 1.0000000 > 9 0.8888889 > > (Not that I am saying that the OO.o/Excel function > is what one _should_ > want. Its behavior seems pathological to me.) > Excel x percentrank(x) 1 0 1 0 3 0.222 3 0.222 4 0.444 5 0.555 6 0.666 7 0.777 10 1 9 0.888
It seems that OOo is following Excel's distinguished footsteps. How can one have a 0 percentile ranking? > -- > David Winsemius > > > > > On 12/1/07, John Kane <[EMAIL PROTECTED]> wrote: > >> > >> I don't see one but that means nothing. I think > you > >> can write such a function in a few minutes > >> > >> Will something like this work or am I > >> missunderstanding what Excel's percentrank does ? > >> > >> aa <- rnorm(25); aa # data vector > >> percentrank <- function(x) { > >> var <- sort(x) > >> p.rank <- 1:length(var)/length(var)*100 > >> dd <- cbind(var,p.rank) > >> } > >> pr <- percentrank(aa); pr > >> > >> > >> --- tom soyer <[EMAIL PROTECTED]> wrote: > >> > >> > Hi, > >> > > >> > Does anyone know if R has a built-in function > that > >> > is equvalent to Excel's > >> > percentrank, i.e., returns the rank of a value > in a > >> > data set as a percentage > >> > of the data set? > >> > > >> > Thanks, > >> > > > ______________________________________________ > 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. > Looking for the perfect gift? Give the gift of Flickr! ______________________________________________ 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.