2017-02-28

Cómo cambiar el ancho de las barras de error de un diagrama de caja con ggplot2

Problema

Deseamos modificar el ancho de las líneas de las barras de error en un diagrama de caja creado con ggplot2. Con stat_boxplot(geom ='errorbar') añadimos las barras de error.

library(ggplot2)
ggplot(iris, aes(factor(Species), Sepal.Width, fill = Species)) +
    geom_boxplot() + 
    stat_boxplot(geom ='errorbar')

Solución

Utilizamos el argumento width dentro de stat_boxplot.

library(ggplot2)
ggplot(iris, aes(factor(Species), Sepal.Width, fill = Species)) +
  geom_boxplot() + 
  stat_boxplot(geom ='errorbar', width = 0.5) 

Entradas relacionadas

2017-02-27

Cómo añadir barras de error a un diagrama de caja con ggplot2

Problema

Deseamos añadir barras de error a un diagrama de caja creado con ggplot2, como aparecen por defecto con el paquete base. De manera que tendremos dos líneas perpendiculares en los extremos de los bigotes de la caja.

library(ggplot2)
ggplot(iris, aes(factor(Species), Sepal.Width, fill = Species)) +
    geom_boxplot() 

Solución

Con stat_boxplot(geom ='errorbar') añadimos las barras de error.

ggplot(iris, aes(factor(Species), Sepal.Width, fill = Species)) +
  stat_boxplot(geom ='errorbar')+
  geom_boxplot() 
Es importante recordar que el orden de cada capa altera el resultado final. Si escribimos primero geom_boxplot la línea sólida vertical se dibuja encima de la caja.

ggplot(iris, aes(factor(Species), Sepal.Width, fill = Species)) +
    geom_boxplot() + 
    stat_boxplot(geom ='errorbar')

Entradas relacionadas

2017-02-17

Crear una hoja de Excel por cada valor de un filtro de una tabla dinámica

Problema

Queremos crear automáticamente una hoja por cada uno de los valores de un filtro de informe de una tabla dinámica. Por ejemplo, por cada año de la siguiente tabla dinámica.

Solución

  1. Clic en cualquier celda de la tabla dinámica.
  2. Dentro de la pestaña analizar, en el grupo Herramientas de tabla dinámica, clic en Opciones y seleccionamos Mostrar páginas de filtro de informes.
  3. En el cuadro de diálogo seleccionamos el campo deseado
  4. Se habrá generado una hoja por cada año.

Notas

Es necesario que el campo por el que deseamos crear las tablas esté como filtro de la tabla dinámica.

Referencias

2017-02-06

Dividir y guardar como ficheros subconjuntos de un data frame con R


Problema

Queremos guardar cada subconjunto de un data frame como un fichero de texto en el directorio de trabajo. En este ejemplo, utilizamos el conjunto de datos iris y crearemos un fichero CSV por cada una de las especies de la columna Species: setosa, versicolor, y virginica.

head(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

Solución

Utilizamos el siguiente bucle para filtrar el data frame y creas los ficheros.

for (name in levels(iris$Species)) {
  # Filtramos el data frame y seleccionamos las columnas
  tmp <- subset(iris, select = -Species, Species == name)
  # Crea un nuevo fichero por cada especie
  fn <- paste(gsub(" ", "", name), ".csv", sep = "")
  # Por cada especie, guarda un CSV en el directorio de trabajo
  write.csv(tmp, fn, row.names = FALSE)
} 

Resultado

En el directorio de trabajo, se habrán guardo los ficheros correspondientes.

Nube de datos