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:
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.
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
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.
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
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”
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")
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.
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.