df <- data.frame(var1=c('a', 'b', 'c'), var2=c('d', 'e', 'f'), freq=1:3)
¿Cuál es la forma más sencilla de ampliar las dos primeras columnas de la hoja.de.datos arriba, de manera que cada fila aparece el número de veces especificado en la columna 'freq'?Replicar cada fila de hoja.de.datos y especificar el número de repeticiones para cada fila
En otras palabras, pasar de esto:
df
var1 var2 freq
1 a d 1
2 b e 2
3 c f 3
A esto:
df.expanded
var1 var2
1 a d
2 b e
3 b e
4 c f
5 c f
6 c f
Gran! Siempre me olvido que puedes usar corchetes de esa manera. Sigo pensando en indexar solo para subconjuntos o reordenamientos. Tenía otra solución que es mucho menos elegante y, sin duda, menos eficiente. Podría publicar de todos modos para que otros puedan comparar. – wkmor1
Para 'data.frame' grande, más eficiente es reemplazar' row.names (df) 'con' seq.int (1, nrow (df)) 'o' seq_len (nrow (df)) '. – Marek
Esto funcionó fantásticamente para un gran marco de datos: 1,5 millones de filas, 5 columnas, fueron muy rápido. ¡Gracias! – gabe