Práctica del Curso de R como herramienta de investigación
11 de noviembre de 2025, en algún lugar de las mazmorras de Lindavista Sur (CdMx)
iris.aae <- read.csv("a2_DelAngelEscalona_AndresLIMPIO.csv", header = TRUE)
library(ggplot2)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
names(iris.aae)
## [1] "sepal_length" "sepal_width" "petal_length" "petal_width" "variety"
## [6] "id"
dim(iris.aae)
## [1] 150 6
str(iris.aae)
## 'data.frame': 150 obs. of 6 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 ...
## $ variety : chr "Setosa" "Setosa" "Setosa" "Setosa" ...
## $ id : int 1 2 3 4 5 6 7 8 9 10 ...
head(iris.aae)
## sepal_length sepal_width petal_length petal_width variety id
## 1 5.1 3.5 1.4 0.2 Setosa 1
## 2 4.9 3.0 1.4 0.2 Setosa 2
## 3 4.7 3.2 1.3 0.2 Setosa 3
## 4 4.6 3.1 1.5 0.2 Setosa 4
## 5 5.0 3.6 1.4 0.2 Setosa 5
## 6 5.4 3.9 1.7 0.4 Setosa 6
summary(iris.aae)
## 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
## variety id
## Length:150 Min. : 1.00
## Class :character 1st Qu.: 38.25
## Mode :character Median : 75.50
## Mean : 75.50
## 3rd Qu.:112.75
## Max. :150.00
glimpse(iris.aae)
## Rows: 150
## Columns: 6
## $ sepal_length <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.…
## $ sepal_width <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.…
## $ petal_length <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.…
## $ petal_width <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.…
## $ variety <chr> "Setosa", "Setosa", "Setosa", "Setosa", "Setosa", "Setosa…
## $ id <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17…
Comentario: Se trata de datos métricos (en centímetros) de 150 plantas de varias especies con flores (pétalos) en formato numérico y una variable tipo carácter para especificar la especie de cada planta (cinco variables en total). Cada especie se caracteriza por un tamaño y proporción propios. Consideré pertinente añadir una variable que identificara cada espécimen (id_). Además, es adecuado convertir en variable tipo FACTOR a “variety”, que adscribe a cada planta a una de las tres especies en consideración.
ggplot(iris.aae, aes(x = sepal_length, fill = variety)) +
geom_histogram(binwidth = 0.32, col = "blue", alpha = 0.45) +
labs(title = "Diversidad métrica en el género Iris",
subtitle = "Longitud del sépalo (cm)",
x = "Long. sépalo (cm)", y = "Frecuencia")
Comentario: Aunque las respectivas distribuciones de las tres especies de plantas se traslapan, en lo que respecta a la longitud del sépalo hay una diferenciación clara, con los valores pequeños asociados con la especie SATOSA y los grandes a la VIRGINICA; con los valores intermedios de la VERSICOLOR.
ggplot(iris.aae, aes(x = petal_length, fill = variety)) +
geom_histogram(binwidth = 0.32, col = "blue", alpha = 0.45) +
labs(title = "Diversidad métrica en el género Iris",
subtitle = "Longitud del pétalo (cm)",
x = "Long. pétalo (cm)", y = "Frecuencia")
Comentario: definitivamente, la distribución de SETOSA se separa contundentemente del resto de sus parientes del mismo género, aunque las otras dos variedades se traslapan en cierta medida, pero no totalmente, pues la VIRGINICA se ubica en la cola superior de la distribución, mientras que la VERSICOLOR en el punto medio entre sus otras dos “primas florales”.
ggplot(iris.aae, aes(x = sepal_width, fill = variety)) +
geom_histogram(binwidth = 0.23, col = "blue", alpha = 0.45) +
labs(title = "Diversidad métrica en el género Iris",
subtitle = "Anchura del sépalo (cm)",
x = "An. sépalo (cm)", y = "Frecuencia")
Comentario: a diferencia de las otras variables, esta anchura del sépalo se traslapa en las tres especies, aunque hay cierto alejamiento de SETOSA hacia la cola superior.
ggplot(iris.aae, aes(x = petal_width, fill = variety)) +
geom_histogram(binwidth = 0.23, col = "blue", alpha = 0.45) +
labs(title = "Diversidad métrica en el género Iris",
subtitle = "Anchura del pétalo (cm)",
x = "An. pétalo (cm)", y = "Frecuencia")
Comentario: como en otras variables de este conjunto de datos, la variedad SETOSA se separa claramente de sus cercanas parientes, con anchuras pequeñas, mientras que sus hermanas de género se ubican en el extremo superior de la distribución, VERSICOLOR y VIRGINICA, en ese orden.
descrip.Sepal.Length <- iris.aae %>% # agrupamos por la variables VARIETY
group_by(variety) %>%
summarise(
media = mean(sepal_length),
desv_est = sd(sepal_length),
) %>%
arrange(desc(media))
descrip.Sepal.Length
## # A tibble: 3 × 3
## variety media desv_est
## <chr> <dbl> <dbl>
## 1 Virginica 6.59 0.636
## 2 Versicolor 5.94 0.516
## 3 Setosa 5.01 0.352
descrip.Sepal.Width <- iris.aae %>%
group_by(variety) %>%
summarise(
media = mean(sepal_width),
desv_est = sd(sepal_width),
) %>%
arrange(desc(media))
descrip.Sepal.Width
## # A tibble: 3 × 3
## variety media desv_est
## <chr> <dbl> <dbl>
## 1 Setosa 3.43 0.379
## 2 Virginica 2.97 0.322
## 3 Versicolor 2.77 0.314
descrip.Petal.Length <- iris.aae %>%
group_by(variety) %>%
summarise(
media = mean(petal_length),
desv_est = sd(petal_length),
) %>%
arrange(desc(media))
descrip.Petal.Length
## # A tibble: 3 × 3
## variety media desv_est
## <chr> <dbl> <dbl>
## 1 Virginica 5.55 0.552
## 2 Versicolor 4.26 0.470
## 3 Setosa 1.46 0.174
descrip.Petal.Width <- iris.aae %>%
group_by(variety) %>%
summarise(
media = mean(petal_width),
desv_est = sd(petal_width),
) %>%
arrange(desc(media))
descrip.Petal.Width
## # A tibble: 3 × 3
## variety media desv_est
## <chr> <dbl> <dbl>
## 1 Virginica 2.03 0.275
## 2 Versicolor 1.33 0.198
## 3 Setosa 0.246 0.105
ggplot(iris.aae, aes(x = variety, y = sepal_length, fill = variety)) +
geom_boxplot(alpha = 0.5) +
labs(title = "Longitud del sépalo",
subtitle = "Plantas del género Iris",
y = "Long. sépalo (cm)", x = "Especie")
Comentario: como se vislumbraba en los histogramas arriba expuestos, la longitud del sépalo separa con claridad las distribuciones de cada especie: SETOSA, VERSICOLOR y VIRGINICA, en ese orden ascendente de magnitud.
ggplot(iris.aae, aes(x = variety, y = sepal_width, fill = variety)) +
geom_boxplot(alpha = 0.5) +
labs(title = "Anchura del sépalo",
subtitle = "Plantas del género Iris",
y = "An. sépalo (cm)", x = "Especie")
Comentario: esta variable separa claramente por la anchura del sépalo a SETOSA, mientras que sus dos hermanas de género se ubican claramente abajo en esta dimensión.
ggplot(iris.aae, aes(x = variety, y = petal_length, fill = variety)) +
geom_boxplot(alpha = 0.5) +
labs(title = "Longitud del pétalo",
subtitle = "Plantas del género Iris",
y = "Long. pétalo (cm)", x = "Especie")
Comentario: esta variable separa nuevamente a SETOSA, mientras que sus dos hermanas de género se ubican claramente arriba en esta dimensión. No obstante, VERSICOLOR y VIRGINICA también se diferencian entre sí, aunque no tanto como lo hacen con SETOSA.
ggplot(iris.aae, aes(x = variety, y = petal_width, fill = variety)) +
geom_boxplot(alpha = 0.5) +
labs(title = "Anchura del pétalo",
subtitle = "Plantas del género Iris",
y = "An. pétalo (cm)", x = "Especie")
Comentario: una vez más, SETOSA se diferencia notablemente de sus hermanas, con valores bajos en la anchura del pétalo.
ggplot(iris.aae, aes(x = petal_length, y = sepal_length, colour = variety)) +
geom_point(alpha = 0.85, size = 3) +
labs(y = "Long. sépalo (cm)", x = "Long. pétalo (cm)",
title = "Longitud pétalo/sépalo",
subtitle = "Diversidad en el género Iris")
Comentario: parece haber una correlación positiva entre las dos longitudes de las flores (pétalo/sépalo), sobre todo en las especies VERSICOLOR y VIRGINICA. Además, SETOSA se diferencia notablemente de sus parientes de género, mientras que las distribuciones bivariadas de las otras dos especies apenas se traslapan en la longitud del pétalo, aunque no en verdad en la del sépalo.
ggplot(iris.aae, aes(x = petal_width, y = sepal_width, colour = variety)) +
geom_point(alpha = 0.85, size = 3) +
labs(y = "An. pétalo (cm)", x = "An. sépalo (cm)",
title = "Anchura pétalo/sépalo",
subtitle = "Diversidad en el género Iris")
Comentario: las dos anchuras disponibles separan también claramente a las tres especies, con SATOSA definitivamente fuera del rango de sus hermanas, pero la anchura del sépalo también separa a VERSICOLOR y VIRGINICA, aunque con cierto traslape.
ggplot(iris.aae, aes(variety, fill = variety)) +
geom_bar() +
scale_fill_manual(
values = c("coral","aquamarine","orchid")) +
labs(
title = "Composición de la muestra",
subtitle = "Género Iris",
caption = "Fuente: datos publicados por R. A. Fisher (1936)",
x = "Especie",
y = "Frecuencia")
Comentario: los recopiladores y analistas de estos datos canónicos de la estadística, tuvieron a bien conceder equilibrio en el tamaño de las muestras de cada especie, para beneficio de los estadísticos del futuro (nosotros ahora). ¡Que viva la memoria del legado de Ronald A. Fisher!
citation("dplyr")
## To cite package 'dplyr' in publications use:
##
## Wickham H, François R, Henry L, Müller K, Vaughan D (2023). _dplyr: A
## Grammar of Data Manipulation_. doi:10.32614/CRAN.package.dplyr
## <https://doi.org/10.32614/CRAN.package.dplyr>, R package version
## 1.1.4, <https://CRAN.R-project.org/package=dplyr>.
##
## A BibTeX entry for LaTeX users is
##
## @Manual{,
## title = {dplyr: A Grammar of Data Manipulation},
## author = {Hadley Wickham and Romain François and Lionel Henry and Kirill Müller and Davis Vaughan},
## year = {2023},
## note = {R package version 1.1.4},
## url = {https://CRAN.R-project.org/package=dplyr},
## doi = {10.32614/CRAN.package.dplyr},
## }
citation("ggplot2")
## To cite ggplot2 in publications, please use
##
## H. Wickham. ggplot2: Elegant Graphics for Data Analysis.
## Springer-Verlag New York, 2016.
##
## A BibTeX entry for LaTeX users is
##
## @Book{,
## author = {Hadley Wickham},
## title = {ggplot2: Elegant Graphics for Data Analysis},
## publisher = {Springer-Verlag New York},
## year = {2016},
## isbn = {978-3-319-24277-4},
## url = {https://ggplot2.tidyverse.org},
## }