Guía de Ejercicios (Respuestas)

Manipulación y Visualización de Datos

Profesor: Mauricio Vargas Sepúlveda
Ayudantes: Maximiliano Diener, Teresa Valdivia, José Vinés

2017-09-29

Pregunta 1

library(dplyr)
library(ggplot2)
library(forcats)
library(readr)

Pregunta 2

mpg
## # A tibble: 234 x 11
##    manufacturer      model displ  year   cyl      trans   drv   cty   hwy
##           <chr>      <chr> <dbl> <int> <int>      <chr> <chr> <int> <int>
##  1         audi         a4   1.8  1999     4   auto(l5)     f    18    29
##  2         audi         a4   1.8  1999     4 manual(m5)     f    21    29
##  3         audi         a4   2.0  2008     4 manual(m6)     f    20    31
##  4         audi         a4   2.0  2008     4   auto(av)     f    21    30
##  5         audi         a4   2.8  1999     6   auto(l5)     f    16    26
##  6         audi         a4   2.8  1999     6 manual(m5)     f    18    26
##  7         audi         a4   3.1  2008     6   auto(av)     f    18    27
##  8         audi a4 quattro   1.8  1999     4 manual(m5)     4    18    26
##  9         audi a4 quattro   1.8  1999     4   auto(l5)     4    16    25
## 10         audi a4 quattro   2.0  2008     4 manual(m6)     4    20    28
## # ... with 224 more rows, and 2 more variables: fl <chr>, class <chr>

Pregunta 3

Hay que cambiar eval = F por eval = T

ggplot(data = mpg) +
  geom_point(mapping = aes(x = displ, y = hwy)) +
  ggtitle("Rendimiento en autopista (hwy) versus cilindrada (displ)")

Pregunta 4

Puede ser el el primer o el cuarto gráfico ya que se usa una variable cualitativa como diferenciador en las observaciones. Sin embargo, el cuarto gráfico no es claro y se pierde un grupo por lo que se descarta.

# opcion 1
ggplot(mpg) + 
  geom_point(aes(x = displ, y = hwy, color = class)) +
  ggtitle("Rendimiento en autopista (hwy) versus cilindrada (displ)")

Pregunta 5

ggplot(data = mpg) +
  geom_boxplot(mapping = aes(x = class, y = hwy)) +
  ggtitle("Rendimiento de en autopista (hwy) por tipo de veh\u00edculo (class)")

Pregunta 6

ggplot(data = mpg) +
  geom_histogram(mapping = aes(x = hwy)) +
  ggtitle("Rendimiento de combustible en autopista (hwy)")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Pregunta 7

ggplot(data = mpg) +
  geom_density(mapping = aes(x = hwy, color = class)) +
  ggtitle("Densidad de veh\u00edculos por tipo (class)")

Pregunta 8

ggplot(data = mpg) +
  geom_bar(mapping = aes(x = class, fill = class)) +
  ggtitle("Cuenta de veh\u00edculos por tipo (class)")

Pregunta 9

La primera línea hace referencia al dataset que contiene las variables que se utilizan en las lineas siguientes.

La línea dos crea un gráfico de puntos.

La línea tres agrega una línea de tendencia sobre lo anterior.

ggplot(mpg) +
   geom_point(aes(displ, hwy)) +
   geom_smooth(aes(displ, hwy)) +
   ggtitle("Rendimiento en autopista (hwy) versus cilindrada (displ)")
## `geom_smooth()` using method = 'loess'

Lo que se obtiene es un gráfico de puntos al cuál se agrega una tendencia, la cual nos dice que se espera que un vehículo con una cilindrada muy baja tenga un mejor rendimiento en autopista que uno de alta cilindrada.

Pregunta 10

# install.packages("babynames")
library(babynames)
babynames
## # A tibble: 1,858,689 x 5
##     year   sex      name     n       prop
##    <dbl> <chr>     <chr> <int>      <dbl>
##  1  1880     F      Mary  7065 0.07238433
##  2  1880     F      Anna  2604 0.02667923
##  3  1880     F      Emma  2003 0.02052170
##  4  1880     F Elizabeth  1939 0.01986599
##  5  1880     F    Minnie  1746 0.01788861
##  6  1880     F  Margaret  1578 0.01616737
##  7  1880     F       Ida  1472 0.01508135
##  8  1880     F     Alice  1414 0.01448711
##  9  1880     F    Bertha  1320 0.01352404
## 10  1880     F     Sarah  1288 0.01319618
## # ... with 1,858,679 more rows

Pregunta 11

babynames %>%
  filter(name == "Khaleesi") %>%
  summarise(total = sum(n), first = min(year))
## # A tibble: 1 x 2
##   total first
##   <int> <dbl>
## 1  1127  2011

Pregunta 12

babynames %>%
  group_by(name, sex) %>%
  summarise(total = sum(n)) %>%
  arrange(desc(total)) %>%
  ungroup() %>%
  slice(1:10) %>%
  ggplot() +
    geom_col(mapping = aes(x = fct_reorder(name,
desc(total)), y = total, fill = sex)) +
    theme_bw() +
    scale_fill_brewer() +
    labs(x = "name") +
    ggtitle("Nombres m\u00e1s comunes")

babynames %>%
  group_by(year) %>%
  summarise(n_children = sum(n)) %>%
  ggplot() +
    geom_line(mapping = aes(x = year, y = n_children)) +
    ggtitle("Cantidad de ni\u00f1os nacidos por a\u00f1o")