On Tue, Aug 28, 2012 at 2:58 PM, Bronwyn Rayfield <bronwynrayfi...@gmail.com> wrote: > I would like to efficiently find the first index of each unique value in a > very large vector. > > For example, if I have a vector > > A<-c(9,2,9,5) > > I would like to return not only the unique values (2,5,9) but also their > first indices (2,4,1). > > I tried using a for loop with which(A==unique(A)[i])[1] to find the first > index of each unique value but it is very slow.
You'll get marginally more speed from which.max() but I'm sure there's a better way. I'll write if I can think of it. Michael > > What I am trying to do is easily and quickly done with the "unique" > function in MATLAB (see > http://www.mathworks.com/help/techdoc/ref/unique.html). > > Thank you for your help, > Bronwyn > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.