Skip to content

unique vs duplicate problem

7 messages · jim holtman, Rui Barradas, Nico902 +2 more

#
Hi,

Let say I have a numeric vector:   x <- c(1, 2, 3, 3).

I want on one hand numbers which are not duplicated ie "1,2" and duplicated
"3".

so I did:
FALSE FALSE FALSE TRUE
1 2 3

which is not what I want. Is there a function in R to have the following
result:
FALSE FALSE TRUE TRUE
1 2

I could do it by programming some loops but I reckon somebody programmed a
function already.

Cheers.



--
View this message in context: http://r.789695.n4.nabble.com/unique-vs-duplicate-problem-tp4635868.html
Sent from the R help mailing list archive at Nabble.com.
#
Here is one way of doing it -- you can create your own functions:
+ function (value)
+ {
+     duplicated(value) | duplicated(value, fromLast = TRUE)
+ }
[1] 3
[1] 1 2

        
On Mon, Jul 9, 2012 at 12:42 PM, Nico902 <descostes at ciml.univ-mrs.fr> wrote:

  
    
#
Hello,

Maybe this function.


fun <- function(x) x %in% x[duplicated(x)]

x <- c(1, 2, 3, 3)
fun(x)


Hope this helps,

Rui Barradas

Em 09-07-2012 17:42, Nico902 escreveu:
#
Hi,
Try this:
#Duplicated:
x<-c(1:3,3)
x==x[duplicated(x)]
#[1] FALSE FALSE? TRUE? TRUE
#Unique:
?x[!x==x[duplicated(x)]]
#[1] 1 2


A.K.







----- Original Message -----
From: Nico902 <descostes at ciml.univ-mrs.fr>
To: r-help at r-project.org
Cc: 
Sent: Monday, July 9, 2012 12:42 PM
Subject: [R] unique vs duplicate problem

Hi,

Let say I have a numeric vector:?  x <- c(1, 2, 3, 3).

I want on one hand numbers which are not duplicated ie "1,2" and duplicated
"3".

so I did:
FALSE FALSE FALSE TRUE
1 2 3

which is not what I want. Is there a function in R to have the following
result:
FALSE FALSE TRUE TRUE
1 2

I could do it by programming some loops but I reckon somebody programmed a
function already.

Cheers.



--
View this message in context: http://r.789695.n4.nabble.com/unique-vs-duplicate-problem-tp4635868.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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.
#
On 2012-07-09 11:07, arun wrote:
Try the above approach with
   x <- c(1,2,3,3,3,4,4,5)

I think Rui's solution is preferable.

Peter Ehlers
#
Hi Peter,

Thanks for testing it and notifying.? I didn't test it to other situtations.

Probably this should give similar results as Rui's
#Test 1:

x<-c(1,2,3,3,3,4,4,5)
func1<-function(x) !is.na(match(x,x[duplicated(x)]))
func1(x)
#[1] FALSE FALSE? TRUE? TRUE? TRUE? TRUE? TRUE FALSE

x[!func1(x)]
#[1] 1 2 5


#Rui's function?fun<-function(x) x%in%x[duplicated(x)]
?fun(x)
#[1] FALSE FALSE? TRUE? TRUE? TRUE? TRUE? TRUE FALSE
?identical(func1(x),fun(x))
#[1] TRUE

#Test2:
x2<-c(1,2,-1,-1,2,3,4,-4,4,5,5,5,6,7)
?x2[!func1(x2)]
#[1]? 1? 3 -4? 6? 7

identical(func1(x2),fun(x2))
#[1] TRUE

A.K.







----- Original Message -----
From: Peter Ehlers <ehlers at ucalgary.ca>
To: arun <smartpink111 at yahoo.com>
Cc: Nico902 <descostes at ciml.univ-mrs.fr>; R help <r-help at r-project.org>
Sent: Monday, July 9, 2012 4:14 PM
Subject: Re: [R] unique vs duplicate problem
On 2012-07-09 11:07, arun wrote:
Try the above approach with
?  x <- c(1,2,3,3,3,4,4,5)

I think Rui's solution is preferable.

Peter Ehlers