En este artículo, vamos a ver cómo leer un archivo XLSX con varias hojas en lenguaje R. Hay varios paquetes externos en R que se usan para leer archivos XLSX con varias hojas.
Archivo utilizado:
Método 1: Usando el paquete readxl
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
Los objetos tibble devueltos por el método read_excel se pueden convertir nuevamente al marco de datos usando el método lapply y especificando la función as.data.frame() que convierte cada objeto en un marco de datos. A estos marcos de datos se les pueden asignar los nombres de hoja correspondientes para una mayor claridad utilizando el método R names() incorporado.
names (df) <- new-name
Código:
R
# importing required packages library(readxl) multiplesheets <- function(fname) { # getting info about all excel sheets sheets <- readxl::excel_sheets(fname) tibble <- lapply(sheets, function(x) readxl::read_excel(fname, sheet = x)) data_frame <- lapply(tibble, as.data.frame) # assigning names to data frames names(data_frame) <- sheets # print data frame print(data_frame) } # specifying the path name path <- "/Users/mallikagupta/Desktop/Gfg.xlsx" multiplesheets(path)
Producción:
$Sheet1 ID Name Job 1 1 A Engineer 2 2 B CA 3 3 C SDE 4 4 D CA 5 5 E SDE $Sheet2 Post Likes 1 A 23 2 B 34 3 C 56 4 D 78
Método 2: Usando el paquete rio.
paquete de rioestimular
install.packages("rio")
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)
Argumentos:
archivo: el nombre de archivo del libro de Excel para acceder
Los nombres de columna y fila se conservan mientras se lee el resultado del libro de Excel. Los nombres de las hojas también son accesibles durante la lectura.
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) # print data print (data)
Producción:
$Sheet1 ID Name Job 1 1 A Engineer 2 2 B CA 3 3 C SDE 4 4 D CA 5 5 E SDE $Sheet2 Post Likes 1 A 23 2 B 34 3 C 56 4 D 78
Método 3: Uso del paquete openxlsx.
El paquete openxlsx en R se usa para crear y manipular archivos de Excel al proporcionar una interfaz de alto nivel para leer y escribir, así como para modificar las hojas de trabajo en el libro de trabajo especificado. El paquete se puede cargar e instalar en el espacio de trabajo utilizando la siguiente sintaxis:
install.packages("openxlsx")
El método getSheetNames( ) de este paquete se usa para devolver los nombres de las hojas de trabajo que se encuentran dentro de un archivo xlsx.
getSheetNames(file)
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.
Después de la recuperación de los diferentes nombres de las hojas con el método anterior, se aplica la función read.xlsx sobre cada una de las hojas del libro. El método read.xlsx se usa para leer datos de un archivo de Excel o un objeto Workbook en un objeto R data.frame en la ruta de archivo especificada.
En este caso, el método lapply() toma como entrada los nombres de las hojas y devuelve los marcos de datos correspondientes que pertenecen a cada hoja del libro. Luego, a estos marcos de datos se les asignan los nombres de las hojas usando el método names() en R.
Código:
R
# specifying the path name path <- "/Users/mallikagupta/Desktop/Gfg.xlsx" # importing the required library library(openxlsx) # getting data from sheets sheets <- openxlsx::getSheetNames(path) data_frame <- lapply(sheets, openxlsx::read.xlsx, xlsxFile=path) # assigning names to data frame names(data_frame) <- sheets # printing the data print (data_frame)
Producción:
$Sheet1 ID Name Job 1 1 A Engineer 2 2 B CA 3 3 C SDE 4 4 D CA 5 5 E SDE $Sheet2 Post Likes 1 A 23 2 B 34 3 C 56 4 D 78
Publicación traducida automáticamente
Artículo escrito por yashchuahan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA