2011-06-21 19 views
45

Esta es una pregunta muy básica, pero me molesta, así que le pregunto.Secuencia de valores repetidos en R

necesito una secuencia de números repetidos, es decir, 1 1 ... 1 2 2 ... 2 3 3 ... 3 etc. La forma I implementado este era

nyear<-20 
    names<-c(rep(1,nyear),rep(2,nyear),rep(3,nyear),rep(4,nyear), 
      rep(5,nyear),rep(6,nyear),rep(7,nyear),rep(8,nyear)) 

que funciona, pero es torpe, y obviamente no escala bien. ¿Cómo repito los N enteros M veces cada uno en secuencia? Intenté anidar seq() y rep() pero eso no hizo exactamente lo que quería. Obviamente, puedo escribir un bucle for que lo hará, pero esto también parece torpe: ¡debería haber una forma intrínseca de hacerlo!

Respuesta

94

se ha perdido el each= argumento para rep():

R> n <- 3 
R> rep(1:5, each=n) 
[1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 
R> 

para que su ejemplo se puede hacer con un simple

R> rep(1:8, each=20) 
Cuestiones relacionadas