[R] Identify duplicate numbers and to increase a value

Moritz Grenke r-list at 360mix.de
Thu Jan 20 16:43:51 CET 2011


If you haven't got so much data a loop should do: 

while(sum(duplicated(x))>0) #if this condition is TRUE then there are still
duplicates in x
{	
	x[duplicated(x)] <- x[duplicated(x)]+0.01 #using duplicated(x) to
index the x vector
}

Hope this helps, 
Regards
Moritz

____________________
Moritz Grenke
http://www.360mix.de

-----Ursprüngliche Nachricht-----
Von: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] Im
Auftrag von Ortiz, John
Gesendet: Donnerstag, 20. Januar 2011 16:13
An: r-help at r-project.org
Betreff: [R] Identify duplicate numbers and to increase a value

Hi everybody.

I want to identify duplicate numbers and to increase a value of 0.01 for
each time that it is duplicated.  

Example:
x=c(1,2,3,5,6,2,8,9,2,2)

I want to do this:

1
2 + 0.01
3
5 
6
2 + 0.02
8
9
2 + 0.03
2 + 0.04

I am trying to get something like this:

1
2.01
3
5
6
2.02
8
9
2.03
2.04

Actually I just know the way to identify the duplicated numbers

rbind(x, duplicated(x) | duplicated(x, fromLast=TRUE))

  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
x    1    2    3    5    6    2    8    9    2     2
     0    1    0    0    0    1    0    0    1     1

Some advice?

Thanks and regards
John Ortiz

______________________________________________
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.



More information about the R-help mailing list