[R] effective way to return only the first argument of "which()"

William Dunlap wdunlap at tibco.com
Wed Sep 19 17:23:20 CEST 2012


The original method is faster than which.max for longish numeric vectors
(in R-2.15.1), but you should check time and memory usage on your
own machine:

> x <- runif(18e6)
> system.time(for(i in 1:100)which(x>0.99)[1])
   user  system elapsed 
  11.64    1.05   12.70 
> system.time(for(i in 1:100)which.max(x>0.99))
   user  system elapsed 
  16.38    2.94   19.35

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Jeff Newmiller
> Sent: Wednesday, September 19, 2012 8:06 AM
> To: Mike Spam; r-help at r-project.org
> Subject: Re: [R] effective way to return only the first argument of "which()"
> 
> ?which.max
> ---------------------------------------------------------------------------
> Jeff Newmiller                        The     .....       .....  Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
>                                       Live:   OO#.. Dead: OO#..  Playing
> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
> ---------------------------------------------------------------------------
> Sent from my phone. Please excuse my brevity.
> 
> Mike Spam <ichmagspam at googlemail.com> wrote:
> 
> >Hi,
> >
> >I was looking for a function like "which()" but only returns the first
> >argument.
> >Compare:
> >
> >x <- c(1,2,3,4,5,6)
> >y <- 4
> >which(x>y)
> >
> >returns:
> >5,6
> >
> >which(x>y)[1]
> >returns:
> >5
> >
> >which(x>y)[1] is exactly what i need. I did use this but the dataset
> >is too big (~18 mio. Points).
> >That's why i need a more effective way to get the first element of a
> >vector which is bigger/smaller than a specific number.
> >
> >I found "match()" but this function only works for equal numbers.
> >
> >
> >
> >Thanks,
> >Nico
> >
> >______________________________________________
> >R-help 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.
> 
> ______________________________________________
> R-help 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.




More information about the R-help mailing list