Readxl Manual de uso y ejemplo

Introducción

El paquete Readxl, fue creado por el Chief Scientist de RStudio, Hadley Wickham de nacionalidad neozelandesa, quien actualmente se desempeña como profesor de estadística en la Universidad de Auckland, Universidad de Standford y la Universidad de Rice. Igualmente se dedica a construir herramientas computacionales acerca de la ciencia de datos.

Divide su trabajo en tres categorías principales:

  1. Ciencia de los datos.
  2. Importación de datos.
  3. Ingeniería de software.

Readxl se puede encontrar en la categoría de paquetes de importación de datos y comparado con diversos paquetes existentes con la misma funcionalidad, tales como: xlsx, gdata, o xlsReadWrite, no tiene dependencias externas, es fácil de instalar, es compatible con todos los sistemas operativos y trabaja los datos a partir de tabulaciones de ellos.

Readxl soporta todas las versiones en formato .xls y el formato moderno .xlsx basado en XML

Como se comenta con anterioridad el nombre de su autor es Hadley Wickham yJennifer Bryan quien además se encarga de darle mantenimiento al programa, cuenta con otros colaboradores como Marcin Kalicinski, autor del código RapidXML y Komarov Valery, Christophe Leitienne, Bob Colbert, David Hoerl y Evan Miller que son los autores del código libxls.

Este paquete forma parte de un conjunto de paquetes denominado Tidyverse y unidos permiten la representación de los datos de distintas formas. A diferencia de Readxl que requiere una instalación por separado, dichos paquetes se descargan en automático al instalar Tidyverse y son los siguientes:

• ggplot2. Permite crear gráficos.

• dplyr. Permite la manipulación de datos

• tidyr. Permite ordenar datos.

• readr. Permite hacer lectura de datos csv, tsv y fwf.

• purrr. Mejora las herramientas de programación.

• tibble. Re-imaginación del marco de datos.

• stringr. Proporciona un conjunto de funciones para trabajar con cadenas. • forcats. Trabaja factores de las variables.

Instalación.

  1. Descarga de paquetes necesarios

Como paso inicial, se tendrá que abrir un R Script (Ctrl + Shift + N), para posteriormente ejecutar los siguientes comandos e instalar los paquetes: tidyverse, xlsx, readxl, también se recomienda la instalación de : “rgl, rjava, xlsxjars y ggplot2” para que no exista problema alguno a la hora de correr los comandos.

Instalando tidyverse

##install.packages("tidyverse")

Instalando readxl

##install.packages ("readxl")

Instalando xlsx

##install.packages ("xlsx")

El siguiente paso, será invocar el software, mediante la siguiente instrucción:

 ##library("xlsx")

Instalar los paquetes sugeridos de la misma forma

Uso de comandos y cómo utilizarlos

Como es del conocimiento de todos, los archivos que son guardados en Excel, son guardados con las extensiones .xls y .xlsx (dependiendo de la versión que el usuario tenga). Para tales efectos, los comandos a ejecutar para llevar a cabo la lectura de los archivos de Excel son los siguientes:

   ##Read.xls() 
   ##Read.xlsx2()

Los comandos antes mencionados, son utilizados por R para estar en posibilidad de leer toda clase de datos contenidos en los archivos de Excel, como ejemplo de la ejecución de dichos comandos, se muestran los siguientes:

##read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL, startRow=NULL, endRow=NULL, colIndex=NULL, as.data.frame=TRUE, header=TRUE, colClasses=NA, keepFormulas=FALSE, encoding="unknown", ...)


##read.xlsx2(file, sheetIndex, sheetName=NULL, startRow=1, colIndex=NULL, endRow=NULL, as.data.frame=TRUE, header=TRUE, colClasses="character", ...)

En donde los argumentos dados en los comandos, sigifican lo siguiente:

#file        Archivo a leer

#sheetIndex      Número de la hoja en el archivo

#sheetName       Nombre de la hoja en el archivo 

#rowIndex        Vector numérico que indica las filas que desea extraer. Si se coloca NULL, todas las filas encontradas se extraerán, a menos que se especifique startRow o endRow

#colIndex        Vector numérico que indica las columnas que desea extraer.Si se coloca NULL, se extraerán todas las columnas encontradas

#as.data.frame   Valor lógico que indica si el resultado debe ser coaccionado en un archivo data.frame. Si es igual a  FALSE, el resultado es una lista con un elemento para cada columna.

#Header      Valor lógico que indica si la primera fila correspondiente al primer elemento del vector rowIndex contiene los nombres de las variables.

#ColClasses      Para read.xlsx un vector de caracteres que representa la clase de cada columna. Si el vector de caracteres es nombrado, los valores no especificados se toman como NA.

#KeepFormulas    Valor lógico que indica si las fórmulas de Excel deben mostrarse como texto en R y no evaluadas antes de introducirlas.

#Encoding            Codificación para las cadenas de entrada.

#StartRow            Número que especifica el índice de la fila inicial. Para read.xlsx este argumento sólo está activo si rowIndex es igual a NULL.

#EndRow      Número que especifica el índice de la última fila a leer. Si es NULL, lee todas las filas de la hoja. Para read.xlsx este argumento sólo está activo si rowIndex es igual a NULL.

Otros comandos y ejemplo

Importar archivos de Excel a R

El siguiente ejemplo es la lectura de un archivo de Excel con extensión .xls donde se han “simulado” a través de números aleatorios entre 1 y 10 las calificaciones anuales de la materia MCAA que se encuentran en la hoja 1 del archivo de Excel.

library(rgl)
library(rJava)
library(xlsx)
library(xlsxjars)
library(readxl)
library(ggplot2)
Prueba<- read.xlsx("MCAA.xls", sheetIndex = 1,header=TRUE )

read_excel("MCAA.xls", sheet = 1)
## # A tibble: 14 x 7
##    `2010` `2011` `2012` `2013` `2014` `2015` `2016`
##     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1      4      8      4      2      7      5      5
##  2      8      3      2      8      4      2      3
##  3      2     10      6      8      1      3      5
##  4      9      1      7      7      7      1      3
##  5      5      9      2      8      2      1      3
##  6      8      9      4      2     10      5     10
##  7      1      8      7      8      2      7      1
##  8      8      4      5     10      9      6      4
##  9      3      4      7      8      3      1      2
## 10      9      3      6      2      7      8      3
## 11      4      8      7      4     10      9      6
## 12      4      5      6      7      2      1      3
## 13      8      5      5      2      8      9     10
## 14     10      1      7     10      8      4      2

Exportar un archivo de R a .xlsx

Así como podemos importar un archivo de Excel a R, podemos también exportar archivos de R a Excel, a continuación detallaremos un ejemplo muy sencillo donde generamos una secuencia numérica del 1 al 6 en la hoja 1 de un libro de Excel que llamaremos “ejemplo.xlsx”

x <- seq(1,6)
write.xlsx (x, file= "ejemplo.xlsx", sheetName = "Hoja1")
read.xlsx("ejemplo.xlsx", sheetName = "Hoja1")
##   NA. x
## 1   1 1
## 2   2 2
## 3   3 3
## 4   4 4
## 5   5 5
## 6   6 6

En la siguiente imagen se observa la creación del archivo exportado:

En la siguiente imagen observamos el contenido del archivo Excel que exportamos y llamamos “ejemplo.xlsx”

Edición de datos en un archivo de Excel utilizando R

La edición de datos es también una necesidad para los usuarios de R, en virtud de lo anterior, al igual que en el apartado que antecede, existe un comando para la edición, el cual está contenido en las funciones write.xlsx () y write.xlsx2 () mismas que son utilizadas para exportar datos de R a un libro de Excel.

Los formatos de estas dos funciones son:

##write.xlsx(x, file, sheetName="Sheet1",
##col.names=TRUE, row.names=TRUE, append=FALSE)
##write.xlsx2(x, file, sheetName="Sheet1",
##col.names=TRUE, row.names=TRUE, append=FALSE)

En donde los argumentos dados en los comandos, son los siguientes:

#X               Marco de datos que se escribirá en el libro

#File                Ruta al archivo de salida

#SheetName           Cadena de caracteres a utilizar para el nombre de la hoja.

#Col.names, row.names        Valor lógico que especifica si los nombres de columnas / nombres de filas de x deben escribirse en el archivo

#Append          Valor lógico que indica si se debe añadir x a un archivo existente

Un ejemplo de la edición de una hoja de Excel es el siguiente, donde creamos sobre la hoja llamada “Hoja1” una nueva tabla que asignará el primer valor al número 2016 como se aprecia en la imagen.

library(xlsx)
write.xlsx(2016, file="Calificaciones.xls",
sheetName="Hoja1")

Algunos otros comandos para edición de archivos de Excel desde R

Edición de fuente

Comando:

 ##Font(wb, color=NULL, heightInPoints=NULL, name=NULL, isItalic=FALSE, isStrikeout=FALSE, isBold=FALSE, underline=NULL, boldweight=NULL)

Argumentos que pueden utilizarse en este comando:

#Wb      Objeto de libro de trabajo devuelto por createWorkbook o loadWorkbook.

#Color   Carácter especificando el color de la fuente. Se puede utilizar cualquier nombre de color devuelto por colores. O, un carácter hexadecimal, p. "# FF0000" para el rojo. 

#HeightInPuntos  Valor numérico que especifica la altura de la fuente. Los valores usuales son 10, 12, 14, etc.

#Name    Valor de carácter para la fuente a utilizar. 

#IsItalic    comando que indica que la fuente debe estar en cursiva. 

#IsStrikeout     comando que indica que la fuente debe ser stiked fuera. 

#IsBold  Indicación lógica de que la fuente debe estar en negrita.

#Underline   Valor numérico especificando el grosor del subrayado. Los valores permitidos son 0, 1, 2.

#Boldweight  Valor numérico que indica el peso en negrita. Normal es 400, la negrita regular es 700.

#X       Objeto Fuente, como devuelto por Fuente.

Conclusiones

Evidentemente, existen una cantidad importante de comandos a ejecutar, sin embargo, consideramos que los mostrados en el presente son los que pudieran resultar de mayor utilidad en el uso del paquete readxl.

La funcionalidad de análisis de datos de ambos programas es diferente, ya que en Excel los datos se pueden importar, manipular y correlacionar ágilmente, sin embargo a través de R se puede potencializar el análisis cuantitativo y la presentación eficaz de los datos.

La importacióny exportación de archivos de R a Excel y viceversa es una herramienta que nos permite explotar al máximo lo mejor de dos mundos, donde R tiene más beneficios.

Por ahora, solo queda seguir descubriendo los beneficios y bondades del software R, ya que para el trabajo que desarrollamos en nuestro día a día herramientas de este estilo, nos facilitarán en mucho la vida.

Bibliografía y referencias

Importacion de datos de EXCEL con RStudio - Guia Rapida Link

Package “readxl” Link

Hadley Wickham Teaching Link

Manual de uso del paquete R xlsx Link

Readxl part of the tidyverse Link