Don't think I have seen this one come across: > x <- c(1,2,3,2,4,4,6,1) > duplicated(x) | duplicated(x, fromLast=TRUE) [1] TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE
On Thu, May 14, 2009 at 12:09 PM, Bert Gunter <gunter.ber...@gene.com>wrote: > ... or, similar in character to Gabor's solution: > > tbl <- table(x) > (tbl[as.character(sort(x))]>1)+0 > > > Bert Gunter > Nonclinical Biostatistics > 467-7374 > > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] > On > Behalf Of Gabor Grothendieck > Sent: Thursday, May 14, 2009 7:34 AM > To: christiaan pauw > Cc: r-help@r-project.org > Subject: Re: [R] Duplicates and duplicated > > Noting that: > > > ave(x, x, FUN = length) > 1 > [1] FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE > > try this: > > > rbind(x, dup = ave(x, x, FUN = length) > 1) > [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] > x 1 2 3 4 4 5 6 7 8 9 > dup 0 0 0 1 1 0 0 0 0 0 > > > On Thu, May 14, 2009 at 2:16 AM, christiaan pauw <cjp...@gmail.com> wrote: > > Hi everybody. > > I want to identify not only duplicate number but also the original number > > that has been duplicated. > > Example: > > x=c(1,2,3,4,4,5,6,7,8,9) > > y=duplicated(x) > > rbind(x,y) > > > > gives: > > [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] > > x 1 2 3 4 4 5 6 7 8 9 > > y 0 0 0 0 1 0 0 0 0 0 > > > > i.e. the second 4 [,5] is a duplicate. > > > > What I want is the first and second 4. i.e [,4] and [,5] to be TRUE > > > > [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] > > x 1 2 3 4 4 5 6 7 8 9 > > y 0 0 0 1 1 0 0 0 0 0 > > > > I assume it can be done by sorting the vector and then checking is the > next > > or the previous entry matches using > > identical() . I am just unsure on how to write such a loop the logic of > > which (I think) is as follows: > > > > sort x > > for every value of x check if the next value is identical and return TRUE > > (or 1) if it is and FALSE (or 0) if it is not > > AND > > check is the previous value is identical and return TRUE (or 1) if it is > and > > FALSE (or 0) if it is not > > > > Im i thinking correct and can some help to write such a function > > > > regards > > Christiaan > > > > [[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<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<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<http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? [[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.