Este taller consiste en aplicar las funciones de la librerÃa dplyr y elaborar algunas gráficas para extraer información de la base de datos diamonds de la librerÃa ggplot2, y contestar las siguientes preguntas:
1. Cargar las librerÃas
# carga una colección de librerÃas incluyendo dplyr y ggplot2
library(tidyverse)
## ── Attaching packages ────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.2.1 ✔ purrr 0.3.2
## ✔ tibble 2.1.3 ✔ dplyr 0.8.3
## ✔ tidyr 0.8.3 ✔ stringr 1.4.0
## ✔ readr 1.3.1 ✔ forcats 0.4.0
## ── Conflicts ───────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
attach(diamonds)
head(diamonds)
2. Revisar la descripción de la base diamonds con la instrucción:
?diamonds
¿Qué variable tiene la base y qué tipo de variables son?
3. Revisar las variables ordinales de la base con la instrucción:
unique(cut)
## [1] Ideal Premium Good Very Good Fair
## Levels: Fair < Good < Very Good < Premium < Ideal
Realizar lo mismo para las variables: color y clarity.
Las siguientes fotos muestran muestran diferentes colores y claridades de los diamantes.
Diferentes colores
Diferentes claridades
4. Tabule la variable color con la función count de la librerÃa dplyr y elabore la gráfica de barras
diamonds %>% count(color)
plot(color, col = rainbow(7))
5. Tabule la variable cut con la función count de la librerÃa dplyr y elabore la gráfica de barras
diamonds %>% count(cut)
plot(cut, col = rainbow(5))
6. Tabule la variable cut cruzada con la variable color (tabla de contingencia) y elabore la gráfica de barras
diamonds %>% group_by(cut, color) %>%
count() %>%
spread(cut, n)
TCC <- table(cut,color)
barplot(TCC, col =rainbow(5), legend = rownames(TCC))
7. Elabore la gráfica de dispersión entre carat y price usando la función plot.
plot(carat, price)
¿Te gusta la apariencia de esta gráfica? ¿Cómo crees que se puede mejorar? ¿Crees que se pueda agregar otra dimensión (variable) a esta gráfica?
8. Calcule el precio promedio de los diamantes chicos (menores de medio kilate), los dimantes medianos (entre medio y un kilate) y diamantes grandes (más de un kilate)
diamonds %>% filter(carat < 0.5) %>% summarise(precio.chicos = mean(price))
diamonds %>% filter(between(carat, 0.5, 1)) %>% summarise(precio.medianos = mean(price))
diamonds %>% filter(carat > 1) %>% summarise(precio.grandes = mean(price))
¿Se te ocurre una forma de calcular los anteriores valores más eficientemente?
9. Calcule el precio promedio de los diamantes chicos para los diferentes cortes
diamonds %>% group_by(cut) %>% summarise(mean(price))
¿Por qué los diamantes de mejor corte en promedio son más baratos?
10. Calcule el precio promedio de los diamantes chicos para los diferentes cortes
diamonds %>% filter(carat < 0.5) %>%
group_by(cut) %>% summarise(mean(price))
diamonds %>% filter(carat > 1) %>%
group_by(cut) %>% summarise(mean(price))
11. Elabore gráficas de cajas para el precio para los diferentes colores
boxplot(price ~ color)
12. Elabore gráficas de cajas para el precio para los diferentes cortes
boxplot(price ~ cut)