Repita filas de DataFrame N veces en R

En este artículo, discutiremos cómo repetir filas de Dataframe por un número determinado de veces usando el lenguaje de programación R. 

Método 1: Usar el método replicate()

Se declara un factor de replicación para definir el número de veces que se repetirán las filas del marco de datos. El método do.call() en R se usa para realizar una función R mientras toma como entrada varios argumentos. El método rbind() se toma como el primer argumento de este método para combinar tramas de datos. El segundo argumento es el método replicate() que se usa para crear múltiples copias de las filas de los marcos de datos equivalentes a la cantidad de veces igual al factor de replicación. 

Sintaxis: replicar (n, expr, simplificar) 

Parámetro: 

  • n – Número de repeticiones a realizar.
  • expr – Expresión a realizar repetidamente.
  • simplificar: tipo de salida en la que se guardan los resultados de expr.

Ejemplo: repetir filas n veces

R

# creating a data frame
data_frame <- data.frame(col1 = c(6:8),
                        col2 = letters[1:3],
                        col3 = c(1,4,NA))
  
print ("Original DataFrame")
  
print (data_frame)
  
# replication factor
n <- 3
  
data_frame_mod <- do.call("rbind", replicate(
  n, data_frame, simplify = FALSE))
  
print ("Modified DataFrame")
  
print(data_frame_mod)

Producción

[1] "Original DataFrame"
col1 col2 col3
1    6    a    1
2    7    b    4
3    8    c   NA
[1] "Modified DataFrame"
col1 col2 col3
1    6    a    1
2    7    b    4
3    8    c   NA
4    6    a    1
5    7    b    4
6    8    c   NA
7    6    a    1
8    7    b    4
9    8    c   NA

Método 2: Usando el paquete purrr

El paquete purr en R se usa para simplificar el funcionamiento y trabajar tanto con funciones como con vectores. El paquete se puede instalar en el espacio de trabajo usando el siguiente comando: 

install.packages("purrr")

El método seq_len() en R se usa para crear una secuencia tomando como entrada un valor entero y luego generando una secuencia de números que comienza desde 1 hasta el entero especificado con pasos equivalentes a 1. 

Sintaxis:

vec <- seq_len(number)

La función map_dfr() de purrr en R se usa para crear un marco de datos formado por la adición de filas. Se utiliza para el enlace de filas. 

Sintaxis:

map_dfr(vec, ~data-frame)

Ejemplo: repetir filas n veces

R

library("purrr")
  
# creating a data frame
data_frame <- data.frame(col1 = c(6:8),
                        col2 = letters[1:3],
                        col3 = c(1,4,NA))
   
print ("Original DataFrame")
print (data_frame)
  
# replication factor
n <- 2
data_frame_mod <- purrr::map_dfr(seq_len(n), ~data_frame)
  
print ("Modified DataFrame")
print(data_frame_mod)

Producción

[1] "Original DataFrame"
col1 col2 col3
1    6    a    1
2    7    b    4
3    8    c   NA
[1] "Modified DataFrame"
col1 col2 col3
1    6    a    1
2    7    b    4
3    8    c   NA
4    6    a    1
5    7    b    4
6    8    c   NA

Método 3: Usar el método rep()

El método nrow() en R se usa para determinar el número de filas del marco de datos. 

Sintaxis:

nrow(data-frame)

Luego, la secuencia de vectores se genera utilizando el método seq_len() descrito en el método anterior. A esto le sigue la aplicación del método rep() que se utiliza para replicar valores numéricos un número específico de veces. El primer argumento es el vector generado por el método seq_len() y n es el factor de replicación. 

Sintaxis:

rep(vec, n)

La indexación del marco de datos se usa para agregar las filas generadas a las filas del marco de datos original y se almacena como el marco de datos modificado. 

Ejemplo : repetir filas n veces

R

# creating a data frame
data_frame <- data.frame(col1 = c(6:8),
                        col2 = letters[1:3],
                        col3 = c(1,4,NA))
  
print ("Original DataFrame")
print (data_frame)
  
# replication factor
n <- 3
data_frame_mod <- data_frame[rep(seq_len(nrow(data_frame)), n), ]
  
print ("Modified DataFrame")
print(data_frame_mod)

Producción

[1] "Original DataFrame"
col1 col2 col3
1    6    a    1
2    7    b    4
3    8    c   NA
[1] "Modified DataFrame"
col1 col2 col3
1      6    a    1
2      7    b    4
3      8    c   NA
1.1    6    a    1
2.1    7    b    4
3.1    8    c   NA
1.2    6    a    1
2.2    7    b    4
3.2    8    c   NA

Publicación traducida automáticamente

Artículo escrito por mallikagupta90 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 *