[R] Assign numbers in R

Greg Snow 538280 at gmail.com
Wed Mar 12 20:39:35 CET 2014


Here are a couple more options if you want some variety:

> d <- c(8,7,5,5,3,3,2,1,1,1)
> as.numeric( factor(d, levels=unique(d)) )
 [1] 1 2 3 3 4 4 5 6 6 6
> cumsum( !duplicated(d) )
 [1] 1 2 3 3 4 4 5 6 6 6


What would you want the output to be if your d vector had another 8
after the last 1?  The different solutions will give different output.


On Wed, Mar 12, 2014 at 3:13 AM, T Bal <studenttbal at gmail.com> wrote:
> Hi,
> I have the following numbers:
>
> d <- c(8,7,5,5,3,3,2,1,1,1)
>
> I want to convert these into the following numbers:
>
> r:
> 1,2,3,3,4,4,5,6,6,6
>
> So if two numbers are different increment it if they are same then assign
> the same number:
>
> r <- NULL
>
> for (i in 1:length(d)) {
>
>  if (d[i] != d[i+1]) {
>   r[i] =i+1;
>  }
>  else {
>   r[i] = i;
>  }
>  }
>
> But this is not correct. How can I solve this problem? or how can I solve
> it in a different way? Thanks a lot!
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.



-- 
Gregory (Greg) L. Snow Ph.D.
538280 at gmail.com




More information about the R-help mailing list