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