El presente documento pretende establecer un manual mínimo para poder trabajar el programa openxlsx en R.
Openxlsx simplifica la creación de Excel, archivos con terminación .xlsx, proveyendo una interface de alto nivel para escribir, estilizar y editar hojas de trabajo. A través del uso de ‘Rcpp’, los tiempos de lectura y escritura pueden ser comparables a los de paquetes ‘xlsx’ y ‘XLConnect’ con el beneficio adicional de librarlo de la dependencia de Java.
Para comenzar se tiene que instalar el programa. Esto es, en RStudio se abre la pestaña de Packages y en el botón Install se busca el programa y se descarga.
El programa se abre con el comando “library”:
library(openxlsx)
A partir de ese momento ya se puede trabajar en openxlsx.
Para los neófitos en R (como su servidor) y más en openxlsx (ídem), el paquete integra una forma de ayuda que se pude consultar con algunos comandos básicos así como con algunos documentos en pdf en los que se pueden observar instrucciones para la instalación y ejemplos sencillos para practicar.
help("openxlsx-package")
Otra forma de obtener ayuda para poder empezar a entender openxlsx, es ir a la pestaña de packages de RStudio, buscar el paquete y darle click con el cursos sobre el nombre del paquete. De modo automático despliega hipervínculos con documentación en pdf y algunos ejemplos, así como algunas páginas de ayuda.
En clase se comentó que las computdoras Mac no tenían por default los acentos y que a la hora de hacer el Knit se perdían (aquí fue cuando el profesor comentó que quien encontrara ese dato obtendría un punto extra). Como se podrá observar se tienen los acentos en el presente documento (siendo que trabajo en Mac), entonces la fórmula es: File/SaveWithEncoding/CSISOLATIN1, y con eso ya se puede guardar el documento y cuando se hace el Knit se tienen los acentos.
El paquete se utiliza principalmente para generar libros de trabajo o workbook. La manera más simple para escribir un libro de trabajo es con el comando write.xlsx().
Por default el comando write.xlsx se llama writeData. Si la asTable es cierta (= TRUE) write.xlsx debe escribir x como una tabla de Excel.
Para poder entender mejor esto desarrollaremos el ejemplo que se encuentra en la ayuda de openxlsx.
"S1"=iris
"S2"=mtcars
wb<-createWorkbook("PruebaTrabajoFinal1")
addWorksheet(wb,"S1")
addWorksheet(wb, "S2")
addWorksheet(wb, "S3")
writeDataTable(wb, "S1", x=iris)
writeDataTable(wb, "S2", x=mtcars, xy=c("B",3), rowNames = TRUE,tableStyle = "TableStyleLight9")
df<-data.frame("Date"=Sys.Date()-0:19,
"LogicalT"=TRUE,
"Time"=Sys.time()-0:19*60*60,
"Cash"=paste("$",1:20), "Cash2"=31:50,
"hLink"="https://CRAN.R-project.org/",
"Percentage"=seq(0,1,length.out = 20),
"TinyNumbers"=runif(20)/ 1E9, stringAsFactors=FALSE)
class(df$Cash)<-c(class(df$Cash), "currency")
class(df$Cash2)<-c(class(df$Cash2), "accounting")
class(df$hLink)<-c(class(df$hLink), "hyperlink")
class(df$Percentage)<-c(class(df$Percentage), "percentage")
class(df$TinyNumbers)<-c(class(df$TinyNumbers), "scientific")
writeDataTable(wb, "S3", x=df, startRow = 4,rowNames = TRUE, tableStyle = "TableStyleMedium9")
writeDataTable(wb, sheet=1, x=iris,startCol = 7, headerStyle = createStyle(textRotation = 45), withFilter = FALSE)
#openXL(wb)
saveWorkbook(wb, "writeDataTebleExample.xlsx", overwrite = TRUE)
Como dato curioso cuando se escribe el comando write.xlsx (iris) R nos señala que este es un famoso dataset de Fisher y Anderson que proporciona las medidas en centímetros de las variables de la cepa de tres especies de flores Iris, lo cual es bastante sorprendente.
options("openxlsx.borderColour"="#4F80BD")
write.xlsx(iris, file = "writeXLSX1.xlsx", colNames=TRUE, borders="columns")
write.xlsx(iris, file = "writeXLSC2.xlsx", colNames=TRUE, borders="surrounding")
hs<-createStyle(textDecoration = "BOLD", fontColour = "#FFFFFF", fontSize = 12,
fontName = "Arial Narrow",fgFill = "#4F80BD")
write.xlsx(iris,file="writeXLSX3.xlsx", colNames=TRUE, borders="rows", headerStyle=hs)
#Escribir el directorio de trabajo.
write.xlsx(iris, file = "writeXLSX1.xlsx")
write.xlsx(iris, file= "writeXLSXTable1.xlsx", asTable = FALSE)
#Escribir una lista de data.frames para hojas de trabajo individual.
list("IRIS" = iris)
## $IRIS
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
write.xlsx(iris, file = "writeXLXS2.xlsx")
write.xlsx(iris, file = "writeXLSX2Table2.xlsx", asTable = FALSE)
options("openxlsx.borderColour"="#4F80BD")
options("openxlsx.borderStyle"="thin")
options("openxlsx.dateFormat"="mm/dd/yyyy")
options("openxlsx.datetimeFormat"="yyyy-mm-dd hh:mm:ss")
options("openxlsx.numFmt"=NULL)
df<-data.frame("Date"=Sys.Date()-0:19,
"LogicalT"=TRUE,
"Time"=Sys.time()-0:19*60*60,
"Cash"=paste("$",1:20), "Cash2"=31:50,
"hLink"="https://CRAN.R-project.org/",
"Percentage"=seq(0,1,length.out = 20),
"TinyNumbers"=runif(20)/ 1E9, stringAsFactors=FALSE)
class(df$Cash)<-c(class(df$Cash), "currency")
class(df$Cash2)<-c(class(df$Cash2), "accounting")
class(df$hLink)<-c(class(df$hLink), "hyperlink")
class(df$Percentage)<-c(class(df$Percentage), "percentage")
class(df$TinyNumbers)<-c(class(df$TinyNumbers), "scientific")
write.xlsx(df, "writeXLSX3.xlsx")
write.xlsx(df, file = "writeXLSX3Table3.xlsx", asTable = FALSE)
#Se puede agregar estilo adicional.
hs<-createStyle(fontColour = "#ffffff", fgFill = "#4F80BD",
halign = "center", valign = "center", textDecoration = "Bold",
border = "TopBottomLeftRight", textRotation = 45)
write.xlsx(iris,file = "writeXLSX4.xlsx", borders="rows",headerStyle=hs)
write.xlsx(iris,file = "writeXLSX5.xlsx", borders="columns", headerStyle=hs)
write.xlsx(iris, "writeXLSXTable4.xlsx", asTable = FALSE)
headerStyle= createStyle(textRotation = 45)
#Cuando escribes una lista, el estilo aplica a todos los elementos de la misma.
list("IRIS"=iris, "colClasses"=df)
## $IRIS
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
##
## $colClasses
## Date LogicalT Time Cash Cash2
## 1 2017-10-13 TRUE 2017-10-13 15:47:00 $ 1 31
## 2 2017-10-12 TRUE 2017-10-13 14:47:00 $ 2 32
## 3 2017-10-11 TRUE 2017-10-13 13:47:00 $ 3 33
## 4 2017-10-10 TRUE 2017-10-13 12:47:00 $ 4 34
## 5 2017-10-09 TRUE 2017-10-13 11:47:00 $ 5 35
## 6 2017-10-08 TRUE 2017-10-13 10:47:00 $ 6 36
## 7 2017-10-07 TRUE 2017-10-13 09:47:00 $ 7 37
## 8 2017-10-06 TRUE 2017-10-13 08:47:00 $ 8 38
## 9 2017-10-05 TRUE 2017-10-13 07:47:00 $ 9 39
## 10 2017-10-04 TRUE 2017-10-13 06:47:00 $ 10 40
## 11 2017-10-03 TRUE 2017-10-13 05:47:00 $ 11 41
## 12 2017-10-02 TRUE 2017-10-13 04:47:00 $ 12 42
## 13 2017-10-01 TRUE 2017-10-13 03:47:00 $ 13 43
## 14 2017-09-30 TRUE 2017-10-13 02:47:00 $ 14 44
## 15 2017-09-29 TRUE 2017-10-13 01:47:00 $ 15 45
## 16 2017-09-28 TRUE 2017-10-13 00:47:00 $ 16 46
## 17 2017-09-27 TRUE 2017-10-12 23:47:00 $ 17 47
## 18 2017-09-26 TRUE 2017-10-12 22:47:00 $ 18 48
## 19 2017-09-25 TRUE 2017-10-12 21:47:00 $ 19 49
## 20 2017-09-24 TRUE 2017-10-12 20:47:00 $ 20 50
## hLink Percentage TinyNumbers stringAsFactors
## 1 https://CRAN.R-project.org/ 0.00000000 4.776111e-10 FALSE
## 2 https://CRAN.R-project.org/ 0.05263158 3.781114e-10 FALSE
## 3 https://CRAN.R-project.org/ 0.10526316 3.156598e-10 FALSE
## 4 https://CRAN.R-project.org/ 0.15789474 8.874384e-10 FALSE
## 5 https://CRAN.R-project.org/ 0.21052632 1.387223e-11 FALSE
## 6 https://CRAN.R-project.org/ 0.26315789 1.807253e-10 FALSE
## 7 https://CRAN.R-project.org/ 0.31578947 2.184985e-10 FALSE
## 8 https://CRAN.R-project.org/ 0.36842105 5.092589e-10 FALSE
## 9 https://CRAN.R-project.org/ 0.42105263 2.927741e-10 FALSE
## 10 https://CRAN.R-project.org/ 0.47368421 9.976650e-10 FALSE
## 11 https://CRAN.R-project.org/ 0.52631579 3.098939e-11 FALSE
## 12 https://CRAN.R-project.org/ 0.57894737 8.540216e-10 FALSE
## 13 https://CRAN.R-project.org/ 0.63157895 6.578133e-10 FALSE
## 14 https://CRAN.R-project.org/ 0.68421053 7.605837e-10 FALSE
## 15 https://CRAN.R-project.org/ 0.73684211 5.851990e-10 FALSE
## 16 https://CRAN.R-project.org/ 0.78947368 2.946687e-10 FALSE
## 17 https://CRAN.R-project.org/ 0.84210526 3.228042e-10 FALSE
## 18 https://CRAN.R-project.org/ 0.89473684 9.610529e-10 FALSE
## 19 https://CRAN.R-project.org/ 0.94736842 3.623991e-10 FALSE
## 20 https://CRAN.R-project.org/ 1.00000000 3.263440e-10 FALSE
write.xlsx(iris,file = "writeXLSX6.xlsx", borders="columns",headerStyle=hs)
write.xlsx(iris,file = "writeXLSXTable6.xlsx", asTable = FALSE, tableStyle="TableStyleMedium9")
#openXL(wb)
wb<-write.xlsx(iris,"writeXLSX6.xlsx")
setColWidths(wb,sheet = 1, cols = 1:5, widths = 20)
saveWorkbook(wb, "writeXLSX6.xlsx", overwrite = TRUE)
Para este ejemplo necesitaremos el paquete ggplot2
library(ggplot2)
#Estableciendo el color de los bordes y el estilo.
wb<-createWorkbook()
options("openxlsx.borderColour"="#4F80BD")
options("openxlsc.borderStyle"="thin")
modifyBaseFont(wb, fontSize = 10, fontName = "Arial Narrow")
addWorksheet(wb, sheetName = "Motor Trend Car Road Test", gridLines = FALSE)
addWorksheet(wb, sheetName = "Iris", gridLines = FALSE)
#Hoja 1
freezePane(wb, sheet = 1, firstRow = TRUE, firstCol = TRUE) ## freeze first row and column
writeDataTable(wb,sheet = 1,x=mtcars, colNames = TRUE, rowNames = TRUE)
setColWidths(wb,sheet = 1, cols = "A", widths = 18)
writeDataTable(wb,sheet = 2,iris,startCol = "L",startRow = 2)
qplot(data = iris,x=Sepal.Length,y=Sepal.Width,colour=Species)
insertPlot(wb,2,xy=c("B",16))
means<-aggregate(x=iris [,-5],by=list(iris$Species), FUN=mean)
vars<-aggregate(x=iris[,-5],by=list(iris$Species),FUN=var)
#openXL(wb)
saveWorkbook(wb,"basics.xlsx", overwrite = TRUE)
Con openlxsx se pueden leer documentos de Excel y transformarlos en un data.frame
xlsxFile<-system.file("readTest.xlsx", package = "openxlsx")
df1<-read.xlsx(xlsxFile = xlsxFile, sheet = 1,skipEmptyRows = FALSE)
sapply(df1,class)
## Var1 Var2 Var3 Var4 Var5 Var6
## "logical" "numeric" "numeric" "character" "numeric" "character"
## Var7
## "numeric"
df2<-read.xlsx(xlsxFile = xlsxFile, sheet = 3, skipEmptyRows = TRUE)
df2$Date<-convertToDate(df2$Date)
sapply(df2,class)
## Date value word bool wordZ2
## "Date" "numeric" "character" "logical" "character"
df2<-read.xlsx(xlsxFile = xlsxFile,sheet = 3,skipEmptyRows = TRUE,
detectDates = TRUE)
sapply(df2,class)
## Date value word bool wordZ2
## "Date" "numeric" "character" "logical" "character"
head(df2)
## Date value word bool wordZ2
## 1 2014-04-28 0.8390764 N-U-B-R-A FALSE FALSE-Z
## 2 2014-04-27 0.8863800 N-Z-P-S-Y TRUE TRUE-Z
## 3 2014-04-26 0.5741314 C-G-D-X-H TRUE TRUE-Z
## 4 2014-04-25 0.1366065 <NA> FALSE FALSE-Z
## 5 2014-04-24 0.3692582 B-K-A-O-W TRUE TRUE-Z
## 6 2014-04-23 NA H-P-G-O-K TRUE TRUE-Z
wb<-loadWorkbook(system.file("readTest.xlsx", package = "openxlsx"))
df3<-read.xlsx(wb,sheet = 2,skipEmptyRows = FALSE,colNames = TRUE)
df4<-read.xlsx(xlsxFile,sheet=2,skipEmptyRows = FALSE,colNames = TRUE)
all.equal(df3,df4)
## [1] TRUE
wb<-loadWorkbook(system.file("readTest.xlsx",package = "openxlsx"))
df3<-read.xlsx(wb,sheet = 2,skipEmptyRows = FALSE,
cols = c(1,4), rows = c(1,3,4))
#openXL(wb)
saveWorkbook(wb, "readTest.xlsx", overwrite = TRUE)
xlsxFile<- "https://github.com/awalker89/openxlsx/raw/master/inst/readTest.xlsx"
head(read.xlsx(xlsxFile))
## Var1 Var2 Var3 Var4 Var5 Var6 Var7
## 1 TRUE 1 1.00 a 42042 3209324 This NA
## 2 TRUE NA NA b 42041 <NA> NA
## 3 TRUE 2 1.34 c 42040 <NA> NA
## 4 FALSE 2 NA <NA> NA <NA> NA
## 5 FALSE 3 1.56 e NA <NA> NA
## 6 FALSE 1 1.70 f 42037 <NA> NA
xlsxFile<-system.file("readTest.xlsx", package = "openxlsx")
df1<-read.xlsx(xlsxFile = "readTest.xlsx", sheet = 1,skipEmptyRows = FALSE)
sapply(df1,class)
## Var1 Var2 Var3 Var4 Var5 Var6
## "logical" "numeric" "numeric" "character" "numeric" "character"
## Var7
## "numeric"
df2<-read.xlsx(xlsxFile = xlsxFile, sheet = 3, skipEmptyRows = TRUE)
df2$Date<-convertToDate(df2$Date)
sapply(df2,class)
## Date value word bool wordZ2
## "Date" "numeric" "character" "logical" "character"
df2<-read.xlsx(xlsxFile = xlsxFile,sheet = 3,skipEmptyRows = TRUE,
detectDates = TRUE)
sapply(df2,class)
## Date value word bool wordZ2
## "Date" "numeric" "character" "logical" "character"
head(df2)
## Date value word bool wordZ2
## 1 2014-04-28 0.8390764 N-U-B-R-A FALSE FALSE-Z
## 2 2014-04-27 0.8863800 N-Z-P-S-Y TRUE TRUE-Z
## 3 2014-04-26 0.5741314 C-G-D-X-H TRUE TRUE-Z
## 4 2014-04-25 0.1366065 <NA> FALSE FALSE-Z
## 5 2014-04-24 0.3692582 B-K-A-O-W TRUE TRUE-Z
## 6 2014-04-23 NA H-P-G-O-K TRUE TRUE-Z
wb<-loadWorkbook(system.file("readTest.xlsx", package = "openxlsx"))
df3<-read.xlsx(wb,sheet = 2,skipEmptyRows = FALSE,colNames = TRUE)
df4<-read.xlsx(xlsxFile,sheet=2,skipEmptyRows = FALSE,colNames = TRUE)
all.equal(df3,df4)
## [1] TRUE
wb<-loadWorkbook(system.file("readTest.xlsx",package = "openxlsx"))
df3<-read.xlsx(wb,sheet = 2,skipEmptyRows = FALSE,
cols = c(1,4), rows = c(1,3,4))
#openXL(wb)
saveWorkbook(wb, "readTest.xlsx2", overwrite = TRUE)
xlsxFile<-"https://data.unicef.org/wp-content/uploads/2015/12/CoD_ARI_Dec-2015_WHO_MCEE_236.xlsx"
head(read.xlsx(xlsxFile))
## Estimates.of.child.cause.of.death,.acute.respiratory.infection.2015.
## 1 <NA>
## 2 iso3
## 3 <NA>
## 4 AFG
## 5 ALB
## 6 DZA
## X2 X3 X4 X5
## 1 <NA> <NA> Total Neonatal deaths Total Post-Neonatal deaths
## 2 Country/area name year nnd pnd
## 3 Global 2015 2680667.0101563334 3261269.5344924927
## 4 Afghanistan 2015 36241.99609375 58018.99609375
## 5 Albania 2015 279 339
## 6 Algeria 2015 14772.998046875 9496.0009765625
## X6
## 1 Neonatal deaths due to Acute Respiratory Infection
## 2 neo9
## 3 159720.15919089821
## 4 2341.3379218341306
## 5 17.594004146754742
## 6 741.77330271275082
## X7
## 1 Postneonatal deaths due to Acute Respiratory Infection
## 2 post9
## 3 760415.85375327477
## 4 16329.555627962756
## 5 56.012041660517355
## 6 2388.6192226992739
## X8
## 1 Underfive deaths due to Acute Respiratory Infection
## 2 ufive9
## 3 920136.02420403063
## 4 18670.892578125
## 5 73.606048583984375
## 6 3130.392578125
## X9
## 1 Neonatal death rate from Acute Respiratory Infection (per 1000 livebirths)
## 2 rneo9
## 3 1.1434693336486816
## 4 2.2934191226959229
## 5 0.3906913697719574
## 6 0.77825230360031128
## X10
## 1 Postneonatal death rate from Acute Respiratory Infection (per 1000 livebirths)
## 2 rpost9
## 3 5.4439730644226074
## 4 15.995348930358887
## 5 1.2437999248504639
## 6 2.506087064743042
## X11
## 1 Underfive death rate from Acute Respiratory Infection (per 1000 livebirths)
## 2 rufive9
## 3 6.5874423980712891
## 4 18.288766860961914
## 5 1.6344913244247437
## 6 3.284339427947998
## X12
## 1 % neonatal deaths due to Acute Respiratory Infection
## 2 fneo9
## 3 5.9582244604825974E-2
## 4 6.4602896571159363E-2
## 5 6.3060946762561798E-2
## 6 5.0211425870656967E-2
## X13
## 1 % post-neonatal deaths due to Acute Respiratory Infection
## 2 fpost9
## 3 0.23316559195518494
## 4 0.28145188093185425
## 5 0.1652272641658783
## 6 0.25153949856758118
## X14
## 1 % underfive deaths due to Acute Respiratory Infection
## 2 fufive9
## 3 0.15485456585884094
## 4 0.19807656109333038
## 5 0.11910364031791687
## 6 0.12898729741573334
download.file(xlsxFile, destfile = "CoD_ARI_Dec-2015_WHO_MCEE_236.xlsx")
Uni2<-read.xlsx("CoD_ARI_Dec-2015_WHO_MCEE_236.xlsx")
save(Uni2, file = "CoD_ARI_Dec-2015_WHO_MCEE_236.xlsx")
xlsxFile<-system.file("CoD_ARI_Dec-2015_WHO_MCEE_236.xlsx", package = "openxlsx")
wb<-createWorkbook()
options("openxlsx.borderColour"="#4F80BD")
options("openxlsc.borderStyle"="thin")
modifyBaseFont(wb, fontSize = 10, fontName = "Arial Narrow")
addWorksheet(wb, sheetName = "Muerte Vias Respiratorias", gridLines = FALSE)
#Hoja 1
freezePane(wb, sheet = 1, firstRow = TRUE, firstCol = TRUE) ## freeze first row and column
writeDataTable(wb,sheet = 1,x=Uni2, colNames = TRUE, rowNames = TRUE)
#openXL(wb)
saveWorkbook(wb,"muerteviasrespiratorias", overwrite = TRUE)
attach(iris)
# Statistics for the four datasets:
mean(Sepal.Length); mean(Sepal.Width); mean(Petal.Length); mean(Petal.Width)
## [1] 5.843333
## [1] 3.057333
## [1] 3.758
## [1] 1.199333
sd(Sepal.Length); sd(Sepal.Width);sd(Petal.Length);sd(Petal.Width)
## [1] 0.8280661
## [1] 0.4358663
## [1] 1.765298
## [1] 0.7622377
cor(Sepal.Length,Sepal.Width);cor(Petal.Length,Petal.Width)
## [1] -0.1175698
## [1] 0.9628654
medias<-c(mean(Sepal.Length), mean(Petal.Length))
# -----------------------------------------------------------------
# Exploración del contenido
# -----------------------------------------------------------------
class(iris) # Clase del objeto
## [1] "data.frame"
typeof(iris) # Tipo del objeto
## [1] "list"
str(iris) # Información sobre su estructura
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
summary(iris) # Resumen de contenido
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
head(iris) # Primeras filas
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
tail(iris) # Últimas filas
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
# Selección de filas y columnas
iris$Sepal.Length[which(iris$Species == 'versicolor')]
## [1] 7.0 6.4 6.9 5.5 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6
## [18] 5.8 6.2 5.6 5.9 6.1 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0
## [35] 5.4 6.0 6.7 6.3 5.6 5.5 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7
# -----------------------------------------------------------------
# Estadística descriptiva
# -----------------------------------------------------------------
#unlist(list(
# media = mean(valores),
#desviacion = sd(valores),
#varianza = var(valores),
#minimo = min(valores),
#maximo = max(valores),
#mediana = median(valores),
#rango = range(valores),
#quartiles = quantile(valores)))
mean(iris$Sepal.Length)
## [1] 5.843333
lapply(iris[,1:4], mean)
## $Sepal.Length
## [1] 5.843333
##
## $Sepal.Width
## [1] 3.057333
##
## $Petal.Length
## [1] 3.758
##
## $Petal.Width
## [1] 1.199333
mean(iris$Sepal.Length[which(iris$Species == 'versicolor')])
## [1] 5.936
mean(subset(iris, Species == 'versicolor', select=Sepal.Length)$Sepal.Length)
## [1] 5.936
sapply(unique(iris$Species), function(specie) mean(iris$Sepal.Length[iris$Species == specie]))
## [1] 5.006 5.936 6.588
# Hmisc
#if(is.installed('Hmisc'))
#install.packages('Hmisc')
library('Hmisc')
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
##
## format.pval, round.POSIXt, trunc.POSIXt, units
# -----------------------------------------------------------------
# Agrupamiento de datos
# -----------------------------------------------------------------
table(iris$Sepal.Length,iris$Species) # Conteo para cada lóngitud de sépalo por especie
##
## setosa versicolor virginica
## 4.3 1 0 0
## 4.4 3 0 0
## 4.5 1 0 0
## 4.6 4 0 0
## 4.7 2 0 0
## 4.8 5 0 0
## 4.9 4 1 1
## 5 8 2 0
## 5.1 8 1 0
## 5.2 3 1 0
## 5.3 1 0 0
## 5.4 5 1 0
## 5.5 2 5 0
## 5.6 0 5 1
## 5.7 2 5 1
## 5.8 1 3 3
## 5.9 0 2 1
## 6 0 4 2
## 6.1 0 4 2
## 6.2 0 2 2
## 6.3 0 3 6
## 6.4 0 2 5
## 6.5 0 1 4
## 6.6 0 2 0
## 6.7 0 3 5
## 6.8 0 1 2
## 6.9 0 1 3
## 7 0 1 0
## 7.1 0 0 1
## 7.2 0 0 3
## 7.3 0 0 1
## 7.4 0 0 1
## 7.6 0 0 1
## 7.7 0 0 4
## 7.9 0 0 1
cortes <- seq(from=4, to=8, by=0.5)
seplen <- cut(iris$Sepal.Length,breaks=cortes) # Discretizar la longitud de sépalo
table(seplen, iris$Species)
##
## seplen setosa versicolor virginica
## (4,4.5] 5 0 0
## (4.5,5] 23 3 1
## (5,5.5] 19 8 0
## (5.5,6] 3 19 8
## (6,6.5] 0 12 19
## (6.5,7] 0 8 10
## (7,7.5] 0 0 6
## (7.5,8] 0 0 6
# split, sample, subset
bySpecies <- split(iris,iris$Species) # Separar en grupos segun un factor
str(bySpecies)
## List of 3
## $ setosa :'data.frame': 50 obs. of 5 variables:
## ..$ Sepal.Length: num [1:50] 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## ..$ Sepal.Width : num [1:50] 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## ..$ Petal.Length: num [1:50] 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## ..$ Petal.Width : num [1:50] 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## ..$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ versicolor:'data.frame': 50 obs. of 5 variables:
## ..$ Sepal.Length: num [1:50] 7 6.4 6.9 5.5 6.5 5.7 6.3 4.9 6.6 5.2 ...
## ..$ Sepal.Width : num [1:50] 3.2 3.2 3.1 2.3 2.8 2.8 3.3 2.4 2.9 2.7 ...
## ..$ Petal.Length: num [1:50] 4.7 4.5 4.9 4 4.6 4.5 4.7 3.3 4.6 3.9 ...
## ..$ Petal.Width : num [1:50] 1.4 1.5 1.5 1.3 1.5 1.3 1.6 1 1.3 1.4 ...
## ..$ Species : Factor w/ 3 levels "setosa","versicolor",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ virginica :'data.frame': 50 obs. of 5 variables:
## ..$ Sepal.Length: num [1:50] 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3 6.7 7.2 ...
## ..$ Sepal.Width : num [1:50] 3.3 2.7 3 2.9 3 3 2.5 2.9 2.5 3.6 ...
## ..$ Petal.Length: num [1:50] 6 5.1 5.9 5.6 5.8 6.6 4.5 6.3 5.8 6.1 ...
## ..$ Petal.Width : num [1:50] 2.5 1.9 2.1 1.8 2.2 2.1 1.7 1.8 1.8 2.5 ...
## ..$ Species : Factor w/ 3 levels "setosa","versicolor",..: 3 3 3 3 3 3 3 3 3 3 ...
mean(bySpecies$setosa$Sepal.Length)
## [1] 5.006
# -----------------------------------------------------------------
# Ordenación de datos
# -----------------------------------------------------------------
#sort(valores)
#order(valores)
#rank(valores)
#rank(valores, ties.method='first')
# Ordenar un data frame por una cierta columna
sortedIris <- iris[order(iris$Petal.Length),]
head(sortedIris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 23 4.6 3.6 1.0 0.2 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 17 5.4 3.9 1.3 0.4 setosa
# -----------------------------------------------------------------
# Particionamiento de datos
# -----------------------------------------------------------------
# Primeras n filas para training restantes para test
nTraining <- as.integer(nrow(iris)*.75)
training <- iris[1:nTraining,]
test <- iris[(nTraining+1):nrow(iris),]
nrow(training) + nrow(test) == nrow(iris)
## [1] TRUE
# Otra forma
set.seed(4242)
indices <- sample(1:nrow(iris),nTraining)
particion <- list(training=iris[indices,], test=iris[-indices,])
lapply(particion,nrow)
## $training
## [1] 112
##
## $test
## [1] 38
particion$test
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 55 6.5 2.8 4.6 1.5 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 104 6.3 2.9 5.6 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 149 6.2 3.4 5.4 2.3 virginica
#close(pb)
# -----------------------------------------------------------------
# ggplot2: Nubes de puntos
# -----------------------------------------------------------------
library(ggplot2)
qplot(iris$Sepal.Length)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
qplot(Sepal.Length, Sepal.Width, data=iris, colour=Species, size=Petal.Width)
# -----------------------------------------------------------------
# ggplot2: Gráfica de líneas
# -----------------------------------------------------------------
qplot(Petal.Length, Sepal.Length, data=iris, color=Species) +
geom_line()
qplot(Petal.Length, Sepal.Length, data=iris, color=Species) +
geom_line(aes(linetype = Species))