tengo un hoja.de.datos df
y quiero que cada fila de esta df
se duplica lengthTime
veces y que se añade una nueva columna que cuenta de 1 a lengthTime
para cada fila de df
.alternativa a expand.grid para data.frames
Lo sé, suena bastante complicado, pero lo que básicamente quiero es aplicar expand.grid
a df
. Aquí es una solución fea y tengo la sensación de que la mayoría de ser una solución más fácil (tal vez incluso una función de base-R?):
df <- data.frame(ID = rep(letters[1:3], each=3),
CatA = rep(1:3, times = 3),
CatB = letters[1:9])
lengthTime <- 3
nrRow <- nrow(df)
intDF <- df
for (i in 1:(lengthTime - 1)) {
df <- rbind(df, intDF)
}
df$Time <- rep(1:lengthTime, each=nrRow)
pensé que solo podía usar expand.grid(df, 1:lengthTime)
, pero eso no quiere trabajar. outer
tampoco trajo ninguna suerte. Entonces, ¿alguien sabe una buena solución?
La mina realmente no es diferente a la de joran que me ha ganado por 40 segundos, pero lo dejo ya que es un poco más explícito. –
Primero en llegar, primer servicio, así que acepté su respuesta ;-) Pero +1 para los dos. ¡Esa es una solución muy buena! –