Esta publicaci??n esta dirigida a los usuarios de RSTUDIO como guia de consulta rapida del paquete XLSX para importar y exportar archivos de Excel utilizando R.
“R”, tambien conocido como ???GNU S???, es un entorno y un lenguaje para el calculo estadistico y la generacion de graficos.
El paquete XLSX permite leer, escribir y modificar archivos de Excel, independientemente de la versi??n que sea. Es una herramienta basada en los paquetes rJava y xlsxjars, mismos que funcionan tanto para Windows, Mac como Linux.
Para instalar este paquete lo podemos realizar desde la consola de R “Packages” con la opcion del menu Install. Si la configuracion del repositorio es correcta, se descargara el paquete asi como sus dependencias, quedando instalados y listos para usar. Para llamar un paquete ya descargado se manda llamar mediante el comando que se describe a continuacion:
library(xlsx)
## Loading required package: rJava
## Loading required package: xlsxjars
library(rJava)
library(xlsxjars)
rendimiento.csv <- read.csv("REND2013.csv", header = TRUE)
head(rendimiento.csv)
## SERV ene.13 feb.13 mar.13 abr.13 may.13 jun.13 jul.13 ago.13 sep.13
## 1 PRI 3.51 3.50 3.41 3.45 3.40 3.39 3.40 3.28 3.44
## 2 PRI 3.25 3.24 3.26 3.24 3.23 3.19 3.19 3.21 3.11
## 3 INT 3.26 3.24 3.36 2.99 3.11 3.12 3.10 3.17 3.15
## 4 TPE 3.52 3.39 3.41 3.24 3.17 3.11 3.23 3.16 3.10
## 5 TUR 2.78 2.75 2.81 2.70 2.72 2.59 2.61 2.69 2.77
## 6 TUR 5.49 5.38 5.21 5.31 4.95 5.23 4.95 5.05 5.07
## oct.13 nov.13 dic.13
## 1 3.43 3.40 3.33
## 2 3.14 3.12 3.01
## 3 3.18 3.15 3.21
## 4 3.15 3.22 3.18
## 5 2.78 2.82 2.79
## 6 5.28 5.74 6.01
Como se muestra en la tabla arriba es como deben lucir los datos tras la lectura. El argumeto header=T es equivalente a header=TRUE, por lo que se pueden usar de forma indistinta.
Para conocer la clase de cada variable aplicamos el comando sapply:
sapply(rendimiento.csv, class)
## SERV ene.13 feb.13 mar.13 abr.13 may.13 jun.13
## "factor" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
## jul.13 ago.13 sep.13 oct.13 nov.13 dic.13
## "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
Si lo que se desea es una s??ntesis estadistica de las principales variables de nuestra tabla entonces usamos:
summary(rendimiento.csv)
## SERV ene.13 feb.13 mar.13 abr.13
## DIE:2 Min. :2.680 Min. :2.380 Min. :2.390 Min. :2.700
## INT:6 1st Qu.:3.083 1st Qu.:3.025 1st Qu.:2.947 1st Qu.:2.895
## PRI:3 Median :3.220 Median :3.230 Median :3.310 Median :2.990
## TPE:2 Mean :3.350 Mean :3.311 Mean :3.326 Mean :3.217
## TUR:5 3rd Qu.:3.475 3rd Qu.:3.385 3rd Qu.:3.410 3rd Qu.:3.295
## Max. :5.490 Max. :5.380 Max. :5.210 Max. :5.310
## may.13 jun.13 jul.13 ago.13
## Min. :2.440 Min. :2.590 Min. :2.320 Min. :2.400
## 1st Qu.:2.945 1st Qu.:2.980 1st Qu.:2.938 1st Qu.:2.913
## Median :3.110 Median :3.120 Median :3.075 Median :3.090
## Mean :3.214 Mean :3.268 Mean :3.176 Mean :3.168
## 3rd Qu.:3.305 3rd Qu.:3.303 3rd Qu.:3.275 3rd Qu.:3.263
## Max. :4.950 Max. :5.230 Max. :4.950 Max. :5.050
## sep.13 oct.13 nov.13 dic.13
## Min. :2.760 Min. :2.370 Min. :2.090 Min. :2.570
## 1st Qu.:2.960 1st Qu.:2.902 1st Qu.:2.862 1st Qu.:2.897
## Median :3.095 Median :3.090 Median :3.085 Median :3.070
## Mean :3.233 Mean :3.215 Mean :3.198 Mean :3.276
## 3rd Qu.:3.263 3rd Qu.:3.255 3rd Qu.:3.295 3rd Qu.:3.277
## Max. :5.070 Max. :5.280 Max. :5.740 Max. :6.010
La instruccion View(datos.csv) muestra la base de datos completa, esta forma de presentar los datos es muy parecida a una hoja de calculo de excel.
View(rendimiento.csv)
Para importar directamente desde excel o exportar a excel en su respectivo formato .xls se puede realizar de diversas formas la primera es como a continuaci??n se describe:
library(xlsx)
combustible <- read.xlsx("REND2013.xls",sheetName ="Historico RC y ABC",header=TRUE,as.data.frame=TRUE)
attach(combustible)
View(combustible)
Para leer el contenido de hojas de Excel en XLSX podr??s usar las funciones read.xlsx() y read.xlsx2(), la diferencia entre ambas funciones es: Read.xlsx(): Preserva los tipos de datos contenidos en la hoja de Excel. Read.xlsx2(): Se usa para leer hojas de Excel con mucha informaci??n.
Tambien se puede leer con el paquete gdata, siendo m??s facil que el anterior, quedando asi:
library(xlsx)
read.xlsx("REND2013.xls",sheetName = "Historico RC y ABC")
## SERV X41275 X41306 X41334 X41365 X41395 X41426 X41456 X41487 X41518
## 1 PRI 7 8 4 3 6 9 7 2 6
## 2 PRI 10 9 5 10 3 9 7 3 5
## 3 INT 10 6 9 7 7 3 8 2 4
## 4 TPE 4 3 6 8 1 8 3 9 10
## 5 TUR 9 9 7 9 9 3 6 3 4
## 6 TUR 10 4 1 6 1 9 3 9 1
## 7 PRI 10 3 4 8 2 10 6 4 8
## 8 DIE 10 3 7 6 2 8 8 3 3
## 9 DIE 5 8 3 6 7 9 10 10 1
## 10 INT 8 9 1 4 2 8 1 10 10
## 11 INT 3 8 3 1 5 3 8 9 4
## 12 INT 10 1 4 3 10 1 2 9 4
## 13 TPE 4 10 1 1 1 2 10 2 6
## 14 TUR 7 5 1 7 5 2 7 8 7
## 15 TUR 8 7 3 3 9 3 9 4 3
## 16 INT 2 1 10 3 7 5 9 4 1
## 17 INT 3 6 6 7 4 10 3 6 8
## 18 TUR 4 4 9 3 8 10 9 8 3
## 19 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 20 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 21 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 22 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 23 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 24 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 25 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 26 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 27 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 28 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 29 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 30 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 31
## 32
## 33
## 34
## 35
## 36
## 37
## 38
## 39
## 40
## X41548 X41579 X41609
## 1 6 1 8
## 2 4 3 3
## 3 9 2 6
## 4 5 5 4
## 5 7 8 6
## 6 7 5 1
## 7 8 10 8
## 8 7 6 10
## 9 1 4 4
## 10 5 6 9
## 11 3 7 2
## 12 5 7 1
## 13 8 5 2
## 14 1 2 2
## 15 5 8 6
## 16 6 1 4
## 17 6 3 6
## 18 7 1 10
## 19 <NA> <NA> <NA>
## 20 <NA> <NA> <NA>
## 21 <NA> <NA> <NA>
## 22 <NA> <NA> <NA>
## 23 <NA> <NA> <NA>
## 24 <NA> <NA> <NA>
## 25 <NA> <NA> <NA>
## 26 <NA> <NA> <NA>
## 27 <NA> <NA> <NA>
## 28 <NA> <NA> <NA>
## 29 <NA> <NA> <NA>
## 30 <NA> <NA> <NA>
## 31
## 32
## 33
## 34
## 35
## 36
## 37
## 38
## 39
## 40
El lenguaje R puede gestionar diferentes gr??ficas, el comando “plot” es el mas utilizado con este paquete y permite generar toda clase de graficos conforme al tipo de informaci??n a presentar.
library(ggplot2)
Diesel <- loadWorkbook("REND2013.xls")
png("Grafica.png", height=800, width=2000, res=250, pointsize=8)
qplot(X41275)
dev.off()
## png
## 2
wb <- loadWorkbook( "REND2013.xls")
sheet <-createSheet(wb, sheetName = "Histograma.Rendimiento")
addPicture("Grafica.png", sheet, scale = 1, startRow = 4,startColumn = 1)
saveWorkbook(wb,"REND2013.xls")
qplot(X41275)
Los comandos write.xlsx() y write.xlsx2(), se usan para exportar directamente de tu script en RStudio a una hoja de trabajo en Excel. La estrcutura de estos comando es: 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) Los par??metros que usa el comando son: x: Bloque de datos a escribir en el libro de Excel. file: Nombre del archivo sheetName: Nombre de la hoja. col.names, row.names : Especifica los nombres de las columnas y filas se escribir??n en el archivo. append: Especifica si el bloque de datos se agregar?? a un archivo existente.
library(xlsx)
write.xlsx(cars, "REND2013A.xlsx")
read.xlsx("REND2013A.xlsx", sheetName = "Sheet1")
## NA. speed dist
## 1 1 4 2
## 2 2 4 10
## 3 3 7 4
## 4 4 7 22
## 5 5 8 16
## 6 6 9 10
## 7 7 10 18
## 8 8 10 26
## 9 9 10 34
## 10 10 11 17
## 11 11 11 28
## 12 12 12 14
## 13 13 12 20
## 14 14 12 24
## 15 15 12 28
## 16 16 13 26
## 17 17 13 34
## 18 18 13 34
## 19 19 13 46
## 20 20 14 26
## 21 21 14 36
## 22 22 14 60
## 23 23 14 80
## 24 24 15 20
## 25 25 15 26
## 26 26 15 54
## 27 27 16 32
## 28 28 16 40
## 29 29 17 32
## 30 30 17 40
## 31 31 17 50
## 32 32 18 42
## 33 33 18 56
## 34 34 18 76
## 35 35 18 84
## 36 36 19 36
## 37 37 19 46
## 38 38 19 68
## 39 39 20 32
## 40 40 20 48
## 41 41 20 52
## 42 42 20 56
## 43 43 20 64
## 44 44 22 66
## 45 45 23 54
## 46 46 24 70
## 47 47 24 92
## 48 48 24 93
## 49 49 24 120
## 50 50 25 85
Se anexa ejemplo donde se muestra como colocar dos hojas de c??lculo nuevas al libro.
wb <- loadWorkbook( "REND2013.xls")
sheet1 <- createSheet(wb, "REND1")
saveWorkbook(wb,"REND2013.xls")
wb <- loadWorkbook( "REND2013.xls")
sheet2 <- createSheet(wb, "REND2")
saveWorkbook(wb,"REND2013.xls")
Bibliografia https://cran.r-project.org/web/packages/xlsx/xlsx.pdf https://rstudio-pubs-static.s3.amazonaws.com/253396_32e96fa4cb1542e39e1f33efab39bbae.html https://www.r-bloggers.com/importexport-data-to-and-from-xlsx-files/ http://www.ub.edu/stat/docencia/EADB/Curso%20basico%20de%20R-bn.pdf