[R] Sequence generation

David Winsemius dwinsemius at comcast.net
Sat Aug 29 21:49:46 CEST 2009


On Aug 29, 2009, at 3:14 PM, njhuang86 wrote:

>
> Hey guys,
>
> I was wondering how to create this sequence: 1, 2, 3, 1, 2, 3, 1, 2,  
> 3, 1,
> 2, 3... with the '1, 2, 3' repeated over 10 times.

As noted earlier

rep(1:3, 10)

>
> Also, is there a simple method to generate 1, 1, 1, 2, 2, 2, 3, 3, 3?

?gl

the gl function will return a factor and it can be converted to a  
vector:

 > gl(10, 3)
  [1] 1  1  1  2  2  2  3  3  3  4  4  4  5  5  5  6  6  6  7  7  7   
8  8  8  9  9  9  10 10 10
Levels: 1 2 3 4 5 6 7 8 9 10
 > as.numeric(gl(10,3))
  [1]  1  1  1  2  2  2  3  3  3  4  4  4  5  5  5  6  6  6  7  7  7   
8  8  8  9  9  9 10 10 10

Or you can cobble something together like:
 > floor(1 + 0:29 / 3)
  [1]  1  1  1  2  2  2  3  3  3  4  4  4  5  5  5  6  6  6  7  7  7   
8  8  8  9  9  9 10 10 10

which depends on the higher precedence of the ":" operator over  
infix-"+" and "/".

?Syntax

-- 

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list