[R] Alternating numbers in rep()

Greg Snow Greg.Snow at imail.org
Thu Jan 24 21:32:45 CET 2008


Here are a couple of options (I'm sure there are plenty of others) that
replicate your results and can be extended without too much more typing
(but some arithmatic):

> unname(unlist( rep( as.data.frame( matrix(1:4, nrow=2) ) , each=6 ) ))
 [1] 1 2 1 2 1 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 4 3 4
> c(aperm(array(rep( 1:4, 6), c(2,2,6)),c(1,3,2)))
 [1] 1 2 1 2 1 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 4 3 4

Hope this helps,

-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
(801) 408-8111
 
 

> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of David Afshartous
> Sent: Thursday, January 24, 2008 1:03 PM
> To: r-help at r-project.org
> Subject: [R] Alternating numbers in rep()
> 
> 
> All,
> 
> I'm trying to obtain a one-liner to generate a certain 
> sequence of alternatign numbers.
> 
> Consider:
> > unlist(rep(list(c(1,2), c(3,4)), each = 6))
>  [1] 1 2 1 2 1 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 4 3 4
> 
> I'd like the result to be as above but continue until 38.  Of 
> course, I could hardcode this going up to c(37,38), but is 
> there a more elegant way?
> 
> 
> Thanks!
> David
> 
> ______________________________________________
> 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