Here's another one: match(d, unique(d)).


Arun

From: Greg Snow 538280@gmail.com
Reply: Greg Snow 538280@gmail.com
Date: March 12, 2014 at 8:41:31 PM
To: T Bal studenttbal@gmail.com
Cc: r-help r-help@r-project.org
Subject:  Re: [R] Assign numbers in R  

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

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

	[[alternative HTML version deleted]]


