Agregue una nueva fila en una posición de índice específica al marco de datos en R

En este artículo, discutiremos cómo agregar una nueva fila en un índice específico en el marco de datos en el lenguaje de programación R.

La tarea principal aquí es cambiar otras filas y hacer espacio en el marco de datos para la nueva fila y luego insertar su contenido. Esto se puede hacer de dos formas

Método 1: Usar rbind()

La función rbind() en lenguaje R se usa para combinar un vector, una array o un marco de datos especificados por filas.

Sintaxis: rbind(x1, x2, …, deparse.level = 1)

Parámetros:

  • x1, x2: vector, array, marcos de datos
  • deparse.level: este valor determina cómo se generaron los nombres de las columnas. El valor predeterminado de deparse.level es 1.

Ejemplo

R

rm(list = ls())
  
# Function to create new dataframe
insertRow <- function(data, new_row, r) {
  data_new <- rbind(data[1:r, ],            
                    new_row,                
                    data[- (1:r), ])        
  rownames(data_new) <- 1:nrow(data_new)    
  return(data_new)
}
  
existingDF <- data.frame(x1 = c(15,25,35,45,55),    
                         x2 = c(23,34,45,56,76),
                         x3 = c(12,23,3,454,26))
  
index <- 4                                             
  
newrow <- c(9, 99, 999)                                
newDF=insertRow(existingDF, newrow, index)
  
print(newDF)

Producción:

Método 2: Usando seq()

Otro enfoque para hacer lo mismo es usar la función seq() . Aquí el enfoque es el mismo, pero el método es algo diferente. Estamos accediendo a las filas del marco de datos y creando el espacio en él. Además, usamos nrows() para contar el número total de filas. 

La función seq() en lenguaje R se usa para crear una secuencia de elementos en un vector. Toma la longitud y la diferencia entre valores como argumento opcional.

Sintaxis: seq(from, to, by, length.out)

Parámetros:

  • from: elemento inicial de la secuencia
  • to: elemento final de la secuencia
  • por: diferencia entre los elementos
  • length.out: longitud máxima del vector

Ejemplo:

R

rm(list = ls())
  
# Function to create new dataframe
insertRow <- function(existingDF, new_row, r) {
  existingDF[seq(r+1,nrow(existingDF)+1),] <- existingDF[seq(r,nrow(existingDF)),] 
  existingDF[r,] <- new_row                         
  return(existingDF)
  
  }
  
existingDF <- data.frame(x1 = c(1,7,13,25,31),              
                         x2 = c(2,8,14,26,32),
                         x3 = c(3,9,15,27,33),
                         x4 = c(4,10,16,28,34),
                         x5 = c(5,11,17,29,35),
                         x6 = c(6,12,18,30,36))
  
r <- 4                              
  
new_row <- c(19,20,21,22,23,24)                 
newDF=insertRow(existingDF, new_row, r)      
  
print(newDF)

Producción:

Publicación traducida automáticamente

Artículo escrito por pulkit12dhingra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *