[R] Create order of numbers based on a given vector

Sam Stewart rhelp.stats at gmail.com
Thu Oct 13 13:25:30 CEST 2011


I think you can use the cumsum function.  If you think of your falses
to 1 and your trues to 0 then you're just sequentially adding the
numbers in the vector.

x = c(FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE)
y = rep(1,length(x))*(1-x)
cumsum(y)

Hope that helps,
Sam

On Thu, Oct 13, 2011 at 8:15 AM, syrvn <mentor_ at gmx.net> wrote:
> Hello!
>
> If I have a vector vec <- c(FALSE, FALSE, TRUE, FALSE, TRUE, TRUE, FALSE
> FALSE)
>
> I can I create the following order of numbers based on vector vec:
>
> 1, 2, 2, 3, 3, 3, 4, 5
>
> Whenever there is a FALSE I increase the number (starting with 1).
> Whenever there is a TRUE I set the same number as the previous FALSE has
> been assigned to.
>
>
> I would be happy for any input
>
> Cheers,
> Syrvn
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Create-order-of-numbers-based-on-a-given-vector-tp3901158p3901158.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.
>



More information about the R-help mailing list