En este artículo, discutiremos cómo anular marcos de datos en el lenguaje de programación R. El anidamiento del marco de datos se refiere a aplanarlo.
Método 1: Usar el enfoque do.call
El método do.call() en base R construye y ejecuta una llamada de función desde una función usando su lista de argumentos correspondiente.
Sintaxis:
do.call(qué, argumentos)
Parámetro:
- what – El nombre de la función a ejecutar
- args: argumentos adicionales para invocar la función.
Invocamos la función «data.frame» que transforma el objeto especificado como segundo argumento en el marco de datos. La salida se devuelve a la forma de un objeto data.frame que contiene las filas y la información de las columnas correspondientes.
Ejemplo:
R
# creating a data frame data_frame <- data.frame(col1 = sample(letters[1:5]), col2 = 1:5 ) print ("Original DataFrame") print (data_frame) # unnesting data frame unnest_df <- do.call(data.frame, data_frame) # printing unnesting data frame str(unnest_df)
Producción
[1] "Original DataFrame" col1 col2 1 c 1 2 e 2 3 a 3 4 b 4 5 d 5 'data.frame': 5 obs. of 2 variables: $ col1: chr "c" "e" "a" "b" ... $ col2: int 1 2 3 4 5
Método 2: Usando el paquete purrr
El paquete purrr en el lenguaje de programación R se utiliza para simular un trabajo sencillo con funciones y vectores. El método bind_cols() en R se usa para vincular columnas de dos o más marcos de datos. El método reduce() se usa para reducir un vector, x , a un solo valor llamando recursivamente a una función. El método reduce() aquí se usa para crear un segundo objeto de marco de datos, que toma como entrada la última fila del marco de datos y usa «tibble» como función.
La salida se obtiene en forma de marco de datos no anidados.
Ejemplo:
R
library(purrr) # creating a data frame data_frame <- data.frame(col1 = sample(letters[6:10]), col2 = 1:5 ) print ("Original DataFrame") print (data_frame) # unnesting data frame unnest_df <- bind_cols(data_frame[1], reduce(data_frame[-1], tibble)) str(unnest_df)
Producción
[1] "Original DataFrame" col1 col2 1 g 1 2 i 2 3 j 3 4 h 4 5 f 5 'data.frame': 5 obs. of 2 variables: $ col1: chr "g" "i" "j" "h" ... $ ...2: int 1 2 3 4 5
Método 3: Usando el paquete tidyr
El paquete tidyr en R se usa para «ordenar» los datos. El método unnest() en el paquete se puede usar para convertir el marco de datos en un objeto no anidado especificando los datos de entrada y sus columnas correspondientes para usar en el anidamiento. La salida se produce en forma de tibble en R.
Sintaxis:
anular (datos, columnas)
Parámetros:
- datos: el marco de datos que se va a anidar
- cols: las columnas que se usarán para anidar
Ejemplo:
R
library(tidyr) # creating a data frame data_frame <- data.frame(col1 = sample(letters[6:10]), col2 = 1:5 ) print ("Original DataFrame") print (data_frame) # unnesting data frame unnest_df <- unnest( data_frame , cols = c('col1','col2')) str(unnest_df)
Producción
[1] "Original DataFrame" col1 col2 1 i 1 2 j 2 3 g 3 4 h 4 5 f 5 tibble [5 × 2] (S3: tbl_df/tbl/data.frame) $ col1: chr [1:5] "i" "j" "g" "h" ... $ col2: int [1:5] 1 2 3 4 5