El siguiente código combina un vector con un marco de datos:
newrow = c(1:4)
existingDF = rbind(existingDF,newrow)
Sin embargo, este código siempre inserta la nueva fila al final del marco de datos.
¿Cómo puedo insertar la fila en un punto específico dentro del marco de datos? Por ejemplo, supongamos que el marco de datos tiene 20 filas, ¿cómo puedo insertar la nueva fila entre las filas 10 y 11?
existingDF = rbind(existingDF[1:10,],newrow,existingDF[-(1:10),])
newdataframe[nrow(newdataframe)+1,] <- existingdataframe[i,]
Respuestas:
Aquí hay una solución que evita la
rbind
llamada (a menudo lenta) :Si la velocidad es menos importante que la claridad, entonces la solución de @ Simon funciona bien:
(Tenga en cuenta que indexamos de manera
r
diferente).Y finalmente, puntos de referencia:
Puntos de referencia
Como @MatthewDowle siempre me señala, los puntos de referencia deben examinarse para determinar la escala a medida que aumenta el tamaño del problema. Aquí vamos entonces:
La solución de @ Roland escala bastante bien, incluso con la llamada a
rbind
:Trazado en una escala lineal:
Y una escala log-log:
fuente
df
con columnasa,b,c,d
y quiero agregar la fila1,2,3,4
. ¿Cómo puedo hacer eso?fuente
rbind
, pero estoy intrigado.Deberías probar el paquete dplyr
Salida
En contraste con el uso de la función rbind
Salida
Hay alguna ganancia de rendimiento.
fuente
por ejemplo, desea agregar filas de la variable 2 a la variable 1 de un dato llamado "bordes" simplemente hágalo así
fuente