[R] sort of cumulative counting in a vector

Dimitris Rizopoulos d.rizopoulos at erasmusmc.nl
Thu Nov 5 14:37:16 CET 2009


one approach is the following:

test <- c('p','p','t','t','t','p','k','t')

v <- cumsum(ind <- test == 't')
v[!ind] <- NA
v


I hope it helps.

Best,
Dimitris


Stefan Uhmann wrote:
> Dear list,
> 
> I need help, since I can not come up with an easy solution to convert 
> this vector
> 
> test <- c('p','p','t','t','t')
> 
> to
> 
> [1] NA NA  1  2  3
> 
> which means the occurences of 't' should be summed up at the 
> corresponding positions. The solution should also be able to handle the 
> following scenarios:
> 
> test2 <- c('t','t','t')
> 
> [1] 1  2  3
> 
> test3 <- c('p','p')
> 
> [1] NA NA
> 
> test <- c('p','p','t','t','t','p','k','t')
> 
> [1] NA NA  1  2  3 NA NA 4
> 
> 
> I would really appreciate an easy solution!
> 
> Thanks,
> Stefan
> 
> ______________________________________________
> 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.
> 

-- 
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014




More information about the R-help mailing list