[RDS] Ejercicios resueltos para la sección 3.2.4

Acabo de empezar la lectura del, hasta ahora, estupendo weblibro “R for Data Science“, que recomendaba en esta entrada, y he pensado que no sería mala idea detenerme a resolver los ejercicios, para que así el aprendizaje fuese más activo.

Una vez puestas las manos en la masa, ¿por qué no compartir mis soluciones a la vez que intento explicar cómo he llegado hasta ellas? Con esta idea en mente, ahí dejo las correspondientes a la sección 3.2.4.

# 1. Run ggplot(data = mpg) what do you see?

library(tidyverse)
ggplot(data = mpg)

La función ggplot() genera un sistema de coordenadas, al que luego estaremos en condiciones de añadir capas. De esta forma, si ejecutamos la instrucción indicada, obtendremos un gráfico en blanco poco o nada interesante.

# 2. How many rows are in mtcars? How many columns?

nrow(mpg)
# [1] 234
ncol(mpg)
# [1] 11

Si tenemos en cuenta la teoría vista hasta ahora, las funciones nrow() y ncol() todavía no han aparecido. Así pues, aunque con ellas somos capaces de responder a ambas preguntas y afirmar que el conjunto de datos está conformado por 234 observaciones, para las cuales se ha registrado el valor de 11 variables, ¿podemos acceder a esta información sin utilizarlas?

Si directamente escribimos mpg, la primera línea que aparece en la consola es:

# A tibble: 234 × 11

Así, hemos llegado a la información que buscábamos sin recurrir a las dos anteriores funciones. Únicamente nos faltaría descubrir qué es un tibble, para lo cual recomiendo echar un vistazo a este artículo. En pocas palabras, es una estructura que viene a reimaginar el clásico data.frame, dotándolo de interesantes nuevas características.

# 3. What does the drv variable describe?
#    Read the help for ?mpg to find out.
help(mpg)

Al acceder a la ayuda para el conjunto de datos mpg, si nos desplazamos a la sección Format, que es donde podemos encontrar la descripción del conjunto de variables, leemos:

drv. f = front-wheel drive, r = rear wheel drive, 4 = 4wd

Es decir, la variable drv almacena el sistema de tracción del vehículo, siendo el valor f el asignado a la tracción delantera, r a la trasera y 4 a la integral.

# 4. Make a scatterplot of hwy vs cyl.
ggplot(data = mpg) +
    geom_point(mapping = aes(x = hwy, y = cyl))

ej-3-2-4-4-1

ggplot(data = mpg) +
    geom_point(mapping = aes(x = drv, y = class))

ej-3-2-4-4-2

Aunque en ambos gráficos se aprecia perfectamente que a medida que aumenta el número de cilindros del motor de un coche, disminuye la eficiencia del consumo de carburante (hwy indica las millas recorridas en autopista por galón de carburante), personalmente encuentro más sencillo descubrir dicha relación a partir de la segunda imagen mostrada.

# 5. What happens if you make a scatterplot of class vs drv.
#    Why is the plot not useful?
ggplot(data = mpg) +
    geom_point(mapping = aes(x = drv, y = class))

ej-3-2-4-5

Acabamos de generar un diagrama de puntos que simplemente nos indica las combinaciones disponibles, en el conjunto de datos, de clase de vehículo y sistema de tracción.

No podremos extraer relaciones como hicimos con los gráficos del ejercicio anterior. Quizá este mismo diagrama de puntos hubiese sido más interesante si, por ejemplo, el tamaño de cada punto estuviese asociado a la proporción de vehículos que la combinación posee bien en la clase de vehículos, bien en el conjunto de sistemas de tracción.

Extra: adelantándome un poco a los acontecimientos, dejo los dos gráficos propuestos en el párrafo anterior.

ggplot(data = mpg, mapping = aes(x = drv, y = class, group = class)) +
    geom_count(mapping = aes(size = ..prop..))

ej-3-2-4-5-2

En esta primera imagen, cada punto representa la proporción de cada uno de los tres sistemas de tracción para los distintos tipos de vehículos. En el siguiente gráfico que podemos apreciar a continuación, cada punto representa la proporción de cada clase de vehículo dentro de cada uno de los tres tipos de sistemas de tracción.

ggplot(data = mpg, mapping = aes(x = drv, y = class, group = drv)) +
    geom_count(mapping = aes(size = ..prop..))

ej-3-2-4-5-3

Este par de imágenes son un poco más informativas que aquella que nos solicitaron generar en el enunciado del presente ejercicio.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s