x <- c(1,1,2,2,3,3,4,4) match(unique(x),x) --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnew...@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.
Emmanuel Levy <emmanuel.l...@gmail.com> wrote: >Hi, > >That sounds simple but I cannot think of a really fast way of getting >the following: > > c(1,1,2,2,3,3,4,4) would give c(1,3,5,7) > >i.e., a function that returns the indexes of the first occurrences of >numbers. > >Note that numbers may have any order e.g., c(3,4,1,2,1,1,2,3,5), can >be very large, and the vectors are also very large (which prohibits >any loop). > >The best I could think of is: > >tmp = c(1,1,2,2,3,3,4,4) >u = unique(tmp) >sapply(u, function(x){ which(!is.na(match(tmp,x)))[1]} ) > >But there might be a useful function I don't know .. > >Thanks for any hint. >All the best, > >Emmanuel > >______________________________________________ >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. ______________________________________________ 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.