INTRODUCCION

Actualmente, el proceso de recolección de grandes cantidades de datos y su análisis es indispensable para tener una ventaja competitiva dentro de una economía globalizada. Las herramientas para analizar dicha información se vuelven aún más indispensables para tener la interpretación de los mismos de manera precisa, consisa y en el menor tiempo posible; es por esto que los softwares tradicionales no dan abasto ara cubrir estas necesidades.


¿Qué es R?

R es un proyecto de software libre de GNU, lenguaje de programación orientado al cálculo estadístico. Proporciona una amplia variedad de técnicas y recursos para el trabajo con gráficas y análisis.

¿Qué es RStudio?

RStudio es un entorno de desarrollo integrado (IDE) para R. Es software libre con licencia GPLv3 y se puede ejecutar sobre distintas plataformas (Windows, Mac, or Linux) o incluso desde la web usando RStudio Server.

En este manual, aprenderemos a usar funciones del paquete .CSV utilizando RStudio que nos permitirá manejar gran cantidad de información de manera fácil. Además, Aprenderemos el lenguaje del paquete XLSX que también sirve para manupular archivos en excel.


PAQUETE CSV

CSV es un potente paquete de R para Windows, Mac y Linux. Funciona en formatos de archivo excel XLS y XLSX. Ademas sirve como una alternativa cuando no se puede usar el paquete “.xlsx”

Temas: . Leer y escribir archivos Excel. . Agregar conjuntos de datos e imágenes (o gráficos) en una hoja de cálculo de Excel.

Así que, empecemos…

En CRAN (repositorio de paquetes R) se pueden encontrar varios paquetes para trabajar con hojas de cálculo Excel desde R. Uno de ellos es el paquete “csv”.La instalacion del mismo puede ser desde la ventana “package” como se muestra en la siguiente imagen:

O bien, ingresando el siguiente comando en tu Scrip o cosola:

# install.packages("csv",dependencies=TRUE)

Nota: es importante agregar “dependencies” al momento de instalar el paquete para que se descarguen todos los elementos que se requieren para usar el paquete en su máxima capacidad

Debe considerar que mientras R esté ejecutando una actividad, se observará un botón rojo en la parte superior derecha de la consola, se debe de esperar a que se termine el proceso.

Capitulo I. Cargando Paquete

Primero debemos llamar nuestro paquete para poder trabajar con el. Directo del scrip o consola inserte el siguiente comando para usar el paquete CSV:

library(csv)

Capitulo II. Exportando Datos

Genere una tabla desde R con los siguientes pasos:

  1. Ingresas datos a analizar con la siguiente estructura: Factor <- variables (Edad, Estatura, Peso, Nacionalidad, Genero, Escuela de Procedencia)
Edad <- c(23,30,30,35,40)
Estatura <- c(1.64,1.7,1.8,1.55,1.8)
Peso <- c(50,70,85,45,80)
Nacionalidad<-c("Mexicano","Mexicano","Mexicano","Extranjero","Extranjero")
Genero <- c("Mujer","Hombre","Hombre","Mujer","Hombre")
  1. Agrupa los factores en un conjunto y nombre las variables.
X <- cbind(Edad,Estatura,Peso,Nacionalidad,Genero)
row.names(X) <- c("Ana","Alberto","Anyelo","Fulanita","Sultanito")
  1. El siguiente comando le ayudara a convertir toda la informacion en una base y posteriormente darle formato de tabla.
datos<-data.frame(X)
write.table(datos,"Estadistica Grupo 1.txt")
  1. Por último, exporte la tabla a un archivo excel.
write.csv(datos,"Estadistica Grupo 1.csv")

¡¡Eureka!! Tiene el documento en el directorio que esté utilizando

Capitulo III. Importando Datos

Ahora veamos como importar los datos desde un archivo excel.

  1. Utilice el comando de read.csv de la siguiente manera para leer la informacion del archivo excel en R.
read.csv("Estadistica Grupo 1.csv")
##           X Edad Estatura Peso Nacionalidad Genero
## 1       Ana   23     1.64   50     Mexicano  Mujer
## 2   Alberto   30     1.70   70     Mexicano Hombre
## 3    Anyelo   30     1.80   85     Mexicano Hombre
## 4  Fulanita   35     1.55   45   Extranjero  Mujer
## 5 Sultanito   40     1.80   80   Extranjero Hombre
  1. Para mayor facilidad almacene la información en una sola variable.
z <- read.csv("Estadistica Grupo 1.csv")
  1. Por último, visualice su tabla con el siguiente comando.
View(z)

¡Listo! Ahora puede empezar a analizar la base de datos con diferentes gráficos, por ejemplo:

  • Histograsmas.
  • Gráficas de barras.
  • PAI
  • Entre otros…

PAQUETE XLSX

XLSX es uno de los potentes paquetes de R para leer, escribir y formatear archivos de Excel. Es una solución basada en java y está disponible para Windows, Mac y Linux. Funciona tanto para los formatos de archivo Excel (formatos de archivo xls y xlsx).

Dentro de las diversas funciones de XLSX están: + Leer y escribir archivos Excel. + Agregar conjuntos de datos e imágenes (o gráficos) en una hoja de cálculo de Excel. + Formatear la apariencia de la hoja de cálculo de Excel estableciendo formatos de datos, fuentes, colores y bordes.

1. Instalar paquete y llamar la libreria al la sesión

Como lo vimos anteriormente, se puede descargar el paquete XLSX desde la opción “packages”, o bien, utilizar el siguiente comando:

# install.packages("xlsx",dependencies = TRUE)

Además de llamar el paquete a la sesión de trabajo:

# library(xlsx)

2. Exportación de datos

Si quiere enviar a una hoja de cálculo Excel la información que tenemos almacenada en un data.frame de R (u otra estructura de datos), se ejecuta el comando:

# **write.xlsx**

Considerando los siguientes parámetros.

Parámetro Descripción
SheetName Nombre de la hoja del libro en que se introducirán los datos.
Append Por defecto toma el valor FALSE, provocando que la función cree un libro con el nombre indicado por filename eliminándolo si ya existiese. Si es TRUE el libro debe existir y al mismo se añadirá una hoja con los nuevos datos.
Col.names y Row.names Determinan si se escribirán en la hoja los nombres asociados a las columnas y las filas del data.frame. Por defecto ambos parámetros toman el valor TRUE.

Por ejemplo:

# library(xlsx)
# lapply(c("Primavera","Verano","Otoño","invierno"),fuction(estaciones))
# write.xlsx(x=data.frame(mes=c(1:3),ventas=rnorm(4,mean = 1000,sd=500)),file="Datos Por Estacion.xlsx", sheetname=Estacion,rownames=FALSE, append=TRUE)

No hay que olvidar guardar el archivo trabajado, para ello se utiliza el siguiente comando:

# SaveWorkbook (wb, "libro a salvo.xlsx")

3. Importación de datos

Ahora bien, para leer la información almacenada debemos indicar que se quiere traer el libro con el nombre de la hoja que contiene la información. Por ejemplo:

# read.xlsx("Datos por Estación.xlsx",sheetname"Otoño")

En caso de que nos interese leer un conjunto concreto de celdillas, no la hoja completa, recurriremos a los parámetros colIndex y rowIndex para especificar qué columnas y qué filas han de recuperarse.

4. Formato de archivo

Funciones para manipular celdas

# createCell(row, colIndex=1:5)
# getCells(row, colIndex=NULL, simplify=TRUE)
# setCellValue(cell, value, richTextString=FALSE, showNA=TRUE)
# getCellValue(cell, keepFormulas=FALSE, encoding="unknown")

donde:

Función Descripción
dataFormat Formato.
alignment Alineación.
border bordes de celda.
font Fuente del texto.
row Contenido de filas.
collndex Especifica el índice de las columnas.
value Varibale de longitud.
richTextString Indica si el contenido debe insertarse como texto enriquecido.
showNA Valor lógico. Si es VERDADERO la celda contendrá el valor “#N/A”, Si es Falso, se saltaran.
keepFormulas Un valor lógico. Si es VERDADERA las formulas se devuelven como caracteres en lugar de ser evaluadas explícitamente.

Funciones para manipular filas

# createCell(row, colIndex=1:5)
# getCells(row, colIndex=NULL, simplify=TRUE)
# setCellValue(cell, value, richTextString=FALSE, showNA=TRUE)
# getCellValue(cell, keepFormulas=FALSE, encoding="unknown")

donde:

Función Descripción
sheet Nombre de la hoja de cálculo.
rowIndex Para crear el número de filas especificado.
rows Valor definido para las celdas vacías.
multiplier Sirve para especificar la altura de las filas.

Funciones para manipular hojas de trabajo

# createSheet(wb, sheetName="Sheet1")
# removeSheet(wb, sheetName="Sheet1")
# getSheets(wb)

donde:

Función Descripción
sheetName Nombre de la hoja que se va a modificar.
createSheet Función para crear una hoja.
removeSheet Función para eliminar una hoja.

Funciones para los títulos y subtítulos

# CellStyle(wb, dataFormat=NULL, alignment=NULL, border=NULL, fill=NULL, font=NULL)
# xlsx.addTitle(sheet, rowIndex=1, title="US State Facts", titleStyle = TITLE_STYLE)
# xlsx.addTitle(sheet, rowIndex=2, title="Data sets related to the 50 states of USA.", titleStyle = SUB_TITLE_STYLE)
# TITLE_STYLE <- CellStyle(wb)+ Font(wb, heightInPoints=16, color="blue", isBold=TRUE, underline=1)
# SUB_TITLE_STYLE <- CellStyle(wb) + Font(wb, heightInPoints=14, isItalic=TRUE, isBold=FALSE)
# TABLE_ROWNAMES_STYLE <- CellStyle(wb) + Font(wb, isBold=TRUE)
# TABLE_COLNAMES_STYLE <- CellStyle(wb) + Font(wb, isBold=TRUE) + Alignment(wrapText=TRUE, horizontal="ALIGN_CENTER") + Border(color="black", position=c("TOP", "BOTTOM"), pen=c("BORDER_THIN", "BORDER_THICK"))

donde:

Función Descripción
xlsx.addTitle Función para agregar título y subtítulo.
CellStyle Función para crear estilos de celda.
TABLE_ROWNAMES_STYLE Función para el formato de filas.
TABLE_COLNAMES_STYLE Función para el formato de columnas.
TITLE_STYLE Función para el formato de título.
SUB_TITLE_STYLE Función para el formato de subtitulos.

Dentro de la estructura de las funciones se encuentran comandos con diversos argumentos. Tres de ellos son: Font, Alignment y Border.

  • Font Color (color de la fuente), HeightInPoints (tamaño de letra), IsBold/isItalic ( indica si la fuente debe estar en negrita o cursiva), Underline (grosor del subrayado) y name (fuente a utilizar).

  • Alignment WrapText (indica si la celda debe ajustarse para mostrar el texto completo), alineación horizontal (“ALIGN_CENTER”, “ALIGN_JUSTIFY”, “ALIGN_LEFT”, “ALIGN_RIGHT”), alineación vertical (“VERTICAL_BOTTOM”, “VERTICAL_CENTER”, “VERTICAL_JUSTIFY”, “VERTICAL_TOP”) y rotation (especifica los grados que se desea girar el texto en la celda).

  • Border Color (es el color del borde), position (“bottom”, “left”, “top”, rigth“) y pen (estilo de la línea del borde, por ejemplo:”border_dash_dot“,”border_dash_dot_dot“,”border_slanted_dash_dot“, etc.).

Otras funciones

# addDataFrame(name, sheet, startRow=3, startColumn=1, colnamesStyle = TABLE_COLNAMES_STYLE, rownamesStyle = TABLE_ROWNAMES_STYLE)
# setColumnWidth(sheet, colIndex=c(1:ncol(state.x77)), colWidth=11)
# png("boxplot.png", height=800, width=800, res=250, pointsize=8) boxplot(count ~ spray, data = InsectSprays, col = "blue") dev.off()
# addPicture("boxplot.png", sheet, scale = 1, startRow = 4, startColumn = 1)
# file.remove ("boxplot.png")

donde:

Función Descripción
addDataFrame Función para agregar una tabla. StartRow y startColumn son un valor numérico que indican la fila y columna inicial. ColnameStyle y rownameStyle personalizan los nombres de encabezado y fila de la tabla.
setColumnWidth Función para cambiar el ancho de una columna. ColIndex es un vector numérico que indica las columnas que se desea cambiar el grosor, por su parte ColWidth cambia el ancho de la columna.
png Función para crear una gráfica png.
addPicture Función para añadir gráficas png.
file.remove Función para eliminar gráficas.

GRAFICOS EN R

Supongamos que los datos anteriores (ya sea que se importen de un archivo por medio de xlsx/csv o se cree la base desde R) pertenecen a un grupo de vendedores de la empresa “Rossy”, la cual quiere analizar sus ventas del primer mes, por lo cual, se elige un histograma para analizar dichas ventas.

A continuación se muestra en el scrip cómo elaborar un histograma previo a que ya sabemos como importar o exportar los datos que tomaremos como base.

Ventas<-c(6,5,3,7,9,6,6,3,5,9,6,4,6,1,1,5,3,7,9,2,1,3,5,9,5,4,8,7,0,3)
opar <- par(bg = "cornsilk")
hist(Ventas,labels=TRUE, axes=FALSE, ylab="",xlab="",main="",col="brown",ylim=c(0,12))
title(main="Ventas Primer Mes",col.main="darkblue",xlab="Articulos Vendidos",ylab="Dias",col.lab="black",cex.lab=0.80, sub="Presenta Isabel LC", col.sub="red",cex.sub=0.7)
axis(1, at=c(0,1,2,3,4,5,6,7,8,9,10),cex.axis=0.8)
axis(2, at=c(0,1,2,3,4,5,6,7,8,9,10), cex.axis=0.8, las=2)

También podemos determinar promedio, moda, desviación estándar, varianza…

median(Ventas)
## [1] 5
mode(Ventas)
## [1] "numeric"
var(Ventas)
## [1] 6.685057

CONCLUSIONES

RStudio permite tener una ventaja competitiva sobre cualquier otro programa estadístico gracias a su lenguaje de programación, su capacidad de analisis para una gran cantidad de datos en poco tiempo, se encuentra en mejora continua, está disponible para los sistemas operativos mas comerciales, se pueden publicar en la web de manera directa los archivos que trabajamos (a través de markdown, por ejemplo) y ayuda a la toma de decisiones.

Para finalizar, el uso de paquetes como xlsx y csv son una ventana para dejar los softwares obsoletos, o que dentro de muy poco tiempo lo serán, y adentrarnos al mundo de R, viendo que no sólo es un programa con imagen simple sino que podemos moldearlo y adaptarlo a nuestras necesidades (imagen, diseño, análisis, etc).

alt text

alt text