On 18/11/2014 11:22 AM, John Laing wrote:
That seems straightforward enough: > x <- c(7, 7, 7, 2, 3, 2) > match(x, x) [1] 1 1 1 4 5 4 > ifelse(duplicated(x), match(x, x), 0) [1] 0 1 1 0 0 4
Nice solution! Thanks. Duncan Murdoch
On Tue, Nov 18, 2014 at 10:40 AM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > On 18/11/2014 10:23 AM, Dennis Fisher wrote: >> >> R 3.1.1 >> OS X >> >> Colleagues >> >> When I use the duplicated function, I often need to find both the >> duplicates and the original element that was duplicated. This can be >> accomplished with: >> duplicated(OBJECT) | duplicated(OBJECT, fromLast=TRUE) >> >> From my perspective, an improvement in the duplicated function would be >> an option that accomplishes this with a single call to the function. This >> could either be: >> 1. a new option: all=TRUE (pick whatever name makes sense) >> 2. allowing fromLast to take a new value (e.g., NA, in the spirit >> of the xpd option in par()) >> >> If my suggestion would yield unintended consequences, it can certainly be >> ignored. > > > The duplicated() function is pretty fast, so what's wrong with your original > version? If you find it to be too much typing, wouldn't it be simplest to > write your own function, e.g. > > nonunique <- function(x) duplicated(x) | duplicated(x, fromLast=TRUE) > > ? > > Something I've wanted more than once is a variation on duplicated that > returns the index of the duplicated element, so for example > > dupindex(c(7,7,7,2,3,2)) > > would return > > 0 1 1 0 0 4 > > or possibly > > 1 1 1 4 5 4 > > Duncan Murdoch > > > ______________________________________________ > 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.