[R] Easy way to get top 2 items from vector

andrew andrewjohnroyal at gmail.com
Fri Sep 4 04:23:58 CEST 2009


it is speedier to use sort than a combination of [] and order:

N<- 1000000
x <- runif(N)
> system.time(x[order(x)[c(N-1,N)]])
   user  system elapsed
   1.03    0.00    1.03
> system.time(sort(x)[c(N-1,N)])
   user  system elapsed
   0.28    0.00    0.28



On Sep 4, 11:17 am, Noah Silverman <n... at smartmediacorp.com> wrote:
> Phil,
>
> That's perfect.  (For my application, I've never seen a tie.  While
> possible, the likelihood is almost none.)
>
> Thanks!
>
> --
> Noah
>
> On 9/3/09 4:29 PM, Phil Spector wrote:
>
>
>
> > Noah -
> >    max(x[-which.max(x)]  will give you the second largest value,
> > but it doesn't handle ties.
> >    x[order(x,decreasing=TRUE)[n]]  will give you the nth largest
> > value, with the same caveat regarding ties.  For example,
> > x[order(x,decreasing=TRUE)[1:3]] will give you the three largest
> > values.
>
> >                     - Phil Spector
> >                      Statistical Computing Facility
> >                      Department of Statistics
> >                      UC Berkeley
> >                      spec... at stat.berkeley.edu
>
> > On Thu, 3 Sep 2009, Noah Silverman wrote:
>
> >> Hi,
>
> >> I use the max function often to find the top value from a matrix or
> >> column of a data.frame.
>
> >> Now I'm looking to find the top 2 (or three) values from my data.
>
> >> I know that I could sort the list and then access the first two
> >> items, but that seems like the "long way".  Is there some way to
> >> access "max_2" or similar?
>
> >> Thanks!
>
> >> --
> >> Noah
>
> >> ______________________________________________
> >> R-h... at 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.
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-h... at r-project.org mailing listhttps://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list