Combine varias hojas de trabajo de Excel en un solo marco de datos en R

En este artículo, discutiremos cómo combinar varias hojas de cálculo de Excel en un solo marco de datos en el lenguaje de programación R.

El siguiente archivo XLSX «gfg.xlsx» se ha utilizado para todos los diferentes enfoques. 

Método 1: Usando el paquete readxl

El método setwd() incorporado se usa para configurar el directorio de trabajo en R.  

El paquete readxl en R se usa para importar y leer libros de trabajo de Excel en R, que se pueden usar para trabajar y modificar fácilmente las hojas .xslsx. Se puede instalar y cargar en el espacio de trabajo R utilizando la siguiente sintaxis: 

install.packages("readxl")

Inicialmente, se invoca el método excel_sheets() para obtener todos los nombres de las hojas de cálculo contenidas en el libro de Excel, con la ruta de archivo especificada. 

excel_sheets(path)

El método lapply() en R se usa para aplicar una función (ya sea definida por el usuario o predefinida) a un conjunto de componentes contenidos dentro de una lista o marco de datos de R. El método lapply() devuelve un objeto de la misma longitud que el objeto de entrada. 

Sintaxis: lapply( obj , FUN)

Argumentos:

obj: el objeto al que se aplica la función 

FUN – La función que se aplicará sobre diferentes componentes del objeto obj. 

FUN es el método read_excel de este almacén de paquetes, que se usa para leer el contenido del nombre de la hoja especificada en un tibble, que es una estructura de tipo tabular que se usa para almacenar datos en filas y columnas fijas. El método lapply aplica el método read_excel sobre cada hoja del libro de trabajo. 

Sintaxis: read_excel(ruta, hoja)

Argumentos:

ruta – La ruta del archivo

hoja: el nombre de la hoja para leer

El tibble final es producido por el método incorporado bind_rows(), que toma como entrada los marcos de datos individuales y les asigna una clave de atributo de ID singular. La salida de bind_rows() contendrá una columna si esa columna aparece en cualquiera de las entradas. El tibble de salida contiene los registros contenidos en todas las hojas, junto con sus respectivos tipos de datos. El nombre de columna «Hoja» se usa para encabezar todas las filas formando una columna principal.

R

# installing the required libraries 
library(readxl)
library(tidyverse)
  
# specifying the path for file
path <- "/Users/mallikagupta/Desktop/"
  
# set the working directory 
setwd(path)
  
# accessing all the sheets 
sheet = excel_sheets("Gfg.xlsx")
  
# applying sheet names to dataframe names
data_frame = lapply(setNames(sheet, sheet), 
                    function(x) read_excel("Gfg.xlsx", sheet=x))
  
# attaching all dataframes together
data_frame = bind_rows(data_frame, .id="Sheet")
  
# printing data of all sheets
print (data_frame)

Producción

# A tibble: 11 x 4    
  Sheet     ID Name  Job         
  <chr>  <dbl> <chr> <chr>     
1 Sheet1     1 A     Engineer  
2 Sheet1     2 B     CA        
3 Sheet1     3 C     SDE       
4 Sheet1     4 D     CA        
5 Sheet1     5 E     SDE       
6 Sheet2     6 F     SDE       
7 Sheet2     7 G     CA        
8 Sheet2     8 H     CA        
9 Sheet2     9 I     Admin    
10 Sheet3    10 J     SDE      
11 Sheet3    11 K     Admin   

Método 2: Usar el paquete rio

paquete de rioestimular

install.packages("rio")

Los métodos import() y export() en R determinan la estructura de datos de la extensión de archivo especificada. El método import_list() importa una lista de marcos de datos de un archivo de varios objetos, por ejemplo, un libro de Excel o un archivo comprimido R. 

Sintaxis: import_list(archivo, rbind = FALSO)

Argumentos: 

archivo: el nombre de archivo del libro de Excel para acceder

rbind: indicador de si combinar o no los marcos de datos en un solo marco de datos

R

# specifying the path name
path <- "/Users/mallikagupta/Desktop/Gfg.xlsx"
  
# importing the required library
library(rio)
  
# reading data from all sheets
data <- import_list(path , rbind=TRUE)
  
# print data
print (data)

Producción

  ID Name      Job  _file 
1   1    A Engineer     1 
2   2    B       CA     1 
3   3    C      SDE     1 
4   4    D       CA     1 
5   5    E      SDE     1 
6   6    F      SDE     2 
7   7    G       CA     2 
8   8    H       CA     2 
9   9    I    Admin     2 
10 10    J      SDE     3 
11 11    K    Admin     3 

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 *