Try this:

replace(x + ave(x, x, FUN = seq) * .01, !(duplicated(x) | duplicated(x,
fromLast = TRUE)), x)

On Thu, Jan 20, 2011 at 1:12 PM, Ortiz, John <ort...@si.edu> wrote:

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



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

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

Reply via email to