Dividir DataFrame en contenedores personalizados en R

En este artículo, veremos cómo dividir el marco de datos en contenedores personalizados en el lenguaje de programación R.

El método cut() en base R se usa para dividir primero el rango del marco de datos y luego dividir los valores según los intervalos en los que se encuentran. Cada uno de los intervalos corresponde a un nivel de la trama de datos. Por lo tanto, el número de niveles es equivalente a la longitud del argumento de pausas en el método de corte.

Sintaxis: cortar (x, rupturas, etiquetas = NULL)

Argumentos:

  • x – Vector numérico a dividir
  • Roturas: un vector que contiene los intervalos
  • Etiquetas – etiquetado de los grupos

Ejemplo 1: dividir el marco de datos en contenedores personalizados

R

# creating a dataframe
data_frame <- data.frame(col1 = c(1:10),
                         col2 = letters[1:10],
                         col3 = c(rep(TRUE,4),
                                  rep(FALSE,6)))
print("Original DataFrame")
print(data_frame)
 
# getting rows of data
rows <- nrow(data_frame)
 
# custom bins
bins <- cut(1:rows,            
            breaks = c(0,6,rows        
                       ))
level_bins <- levels(bins)
 
# printing the subsets of dataframe
for(i in 1:length(level_bins)) {   
  assign(paste0("data_frame_", i),
         data_frame[bins == levels(bins)[i], ])
}
 
# retrieving dataframe subsets
print("DataFrame Subset 1")
print(data_frame_1)
 
print("DataFrame Subset 2")
print(data_frame_2)

Producción:

Ejemplo 2: ilustra el uso en el que se especifican tres puntos de interrupción, por lo que se dividen las filas en tres subconjuntos del marco de datos original.

R

# creating a dataframe
data_frame <- data.frame(col1 = c(1:10),
                         col2 = letters[1:10],
                         col3 = c(rep(TRUE,4),
                                  rep(FALSE,6)))
print("Original DataFrame")
print(data_frame)
 
# getting rows of data
rows <- nrow(data_frame)
 
# custom bins
bins <- cut(1:rows,            
            breaks = c(0,2,4,rows      
                       ))
level_bins <- levels(bins)
 
# printing the subsets of dataframe
for(i in 1:length(level_bins)) {   
  assign(paste0("data_frame_", i),
         data_frame[bins == levels(bins)[i], ])
}
 
# retrieving dataframe subsets
print("DataFrame Subset 1")
print(data_frame_1)
 
print("DataFrame Subset 2")
print(data_frame_2)
 
print("DataFrame Subset 3")
print(data_frame_3)

Producción:

Ejemplo 3: el método de corte también puede especificar el número de partes iguales en las que se dividirá el marco de datos. Esto se especifica como el segundo argumento del método. El marco de datos se divide en esos números de partes equivalentes y, en consecuencia, se le asignan los nombres especificados. El siguiente código divide el marco de datos en 5 contenedores personalizados de igual tamaño:

R

# creating a dataframe
data_frame <- data.frame(col1 = c(1:10),
                         col2 = letters[1:10],
                         col3 = c(rep(TRUE,4),
                                  rep(FALSE,6)))
 
print("Original DataFrame")
print(data_frame)
 
# getting rows of data
rows <- nrow(data_frame)
 
# custom bins
bins <- cut(1:rows,5)
level_bins <- levels(bins)
 
# printing the subsets of dataframe
for(i in 1:length(level_bins)) {   
  assign(paste0("data_frame_", i),
         data_frame[bins == levels(bins)[i], ])
}
 
# retrieving dataframe subsets
print("DataFrame Subset 1")
print(data_frame_1)
 
print("DataFrame Subset 2")
print(data_frame_2)
 
print("DataFrame Subset 3")
print(data_frame_3)
 
print("DataFrame Subset 4")
print(data_frame_4)
 
print("DataFrame Subset 5")
print(data_frame_5)

Producción:

Publicación traducida automáticamente

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