Está en la página 1de 11

Ayudantía 2

Razonamiento Cuantitativo con Datos II, UAI


2022-2

Objetivos de la clase
Repasar las librerias tidyverse y
ggplot2 .
Repasar como cargar dataframe internos de R.
Conocer diferentes gráficas incorporadas en la librería
ggplot2 .
Conocer mejoras a las estéticas gráficas incorporadas en la librería
ggplot2 .

Actividad 1
Escriba cuales fueros las librerias mas utilizadas en el curso RCD I.
De ser necesario, instale los paquetes que
permiten trabajar con cada
libreria.

library(tidyverse) #Recordar que ggplot2 viene incorporado en tidyverse

## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──

## ✔ ggplot2 3.3.6 ✔ purrr 0.3.4

## ✔ tibble 3.1.7 ✔ dplyr 1.0.9

## ✔ tidyr 1.2.0 ✔ stringr 1.4.0

## ✔ readr 2.1.2 ✔ forcats 0.5.1

## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──

## ✖ dplyr::filter() masks stats::filter()

## ✖ dplyr::lag() masks stats::lag()

library(skimr)

Actividad 2
Determine para que se utiliza el operador %>% (pipes
o cañerías)

RESPUESTA: El operador %>% es básico


en el paquete tidyverse , ya que permite encadenar llamadas
a
funciones para así realizar de forma sencilla transformaciones de
datos complejas. En palabras, lo que hace este
operador es pasar el
elemento que está a su izquierda como un argumento de la función que
tiene a la derecha.

Actividad 3
Suponiendo que df corresponde a una data, determine en
palabras que realiza el siguiente código:

df %>% filter(X1 > 100) %>% group_by(X2) %>% summarise(media = mean(X3))


RESPUESTA: Toma los datos df y
selecciona (o filtra) las filas que cumplen que el valor de X1 es mayor
que
100. Después, agrupa los datos por la variable X2, para luego
calcular la media de X3.

Actividad 4
A continuación, trabajaremos con dos datas disponibles en R:
heigth y murders . Para acceder a estos datos
tenemos que instalar el paquete donde se encuentra la librería que
contienen estas bases de datos. Para esto,
instale el paquete
dslabs y llame a su librería.

install.packages("dslabs")

## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.2'

## (as 'lib' is unspecified)

library(dslabs)

Actividad 5
Cargue la data heigth , la cual corresponde a un listado
de atributos de alumnos de una universidad, en donde
se indica en la
columna height la estatura de cada persona en pulgadas.
Luego, muestre los datos.

data(heights)

Los datos son:

heights

sex height
<fct> <dbl>

Male 75.00000

Male 70.00000

Male 68.00000

Male 74.00000

Male 61.00000

Female 65.00000

Female 66.00000

Female 62.00000

Female 66.00000

Male 67.00000

1-10 of 1,050 rows Previous 1 2 3 4 5 6 ... 105 Next


O bien,

heights %>% view()

Actividad 6
Agregue una nueva variable de nombre estatura donde
transformaremos a metros la estatura de la data original
(recordemos que
un metro tiene 39.37 pulgadas). El resultado almacenémoslo dentro de una
nueva data.

estaturas <- heights %>%

mutate(estatura = height/39.37)

estaturas %>%

head()

  sex height estatura


  <fct> <dbl> <dbl>

1 Male 75 1.905004

2 Male 70 1.778004

3 Male 68 1.727203

4 Male 74 1.879604

5 Male 61 1.549403

6 Female 65 1.651003

6 rows

Actividad 7
Realice una tabla que muestre el promedio y la desviación estandar de
la estatura (en metros) de hombres y
mujeres.

estaturas %>%

group_by(sex) %>%

summarize(promedio = mean(estatura), desv_est = sd(estatura))

sex promedio desv_est


<fct> <dbl> <dbl>

Female 1.649465 0.09552086

Male 1.760598 0.09172018

2 rows

Actividad 8
Existe otro dataframe disponible en R, el cual contiene
observaciones de asesinados con armas de fuego en
EEUU durante el año
2010 y que tomaremos como referencia para resolver el siguiente
caso/problemática. Dicha
data la encontraremos con el nombre
murders (asesinato en inglés), la cual es parte de la
librería dslabs
previamente mencionada.

Cargue la data murders y muestre sus datos.

data(murders)

Los datos son:

murders

state abb region population total


<chr> <chr> <fct> <dbl> <dbl>

Alabama AL South 4779736 135

Alaska AK West 710231 19

Arizona AZ West 6392017 232

Arkansas AR South 2915918 93

California CA West 37253956 1257

Colorado CO West 5029196 65

Connecticut CT Northeast 3574097 97

Delaware DE South 897934 38

District of Columbia DC South 601723 99

Florida FL South 19687653 669

1-10 of 51 rows Previous 1 2 3 4 5 6 Next

O bien,

murders %>% view()

Actividad 9
Describa las variables de la data murders . Recuerde que
puede conocer más detalles sobre las datas internas de
R mediante, en
este caso, la instrucción ?murders

RESPUESTA: las variables state ,


abb y region son cualitativas, siendo todas
nominales ya que no existe un
orden jerarquico entre sus respuestas. Por
su lado, population y total son variables
cuantitativas de razón,
siendo ambas discretas.

Actividad 10
Realice un gráfico de puntos donde se muestre en el eje X la data de
population y en el eje Y la data del total .
Hint: para esto puede utilizar la estética gráfica
geom_point()

murders %>%

ggplot() +

aes(x = population, y = total) +

geom_point() +

labs(title = "Población según número de muertes por pistola",

subtitle = "Gráfico de puntos de los estado de EEUU",

caption = "Datos reportados por el FBI, 2010.",

x = "Población",

y = "Número de muertes por pistola")

Actividad 11
Realice un grafico de linea donde se muestre en el eje X la data de
population y en el eje Y la data del total .
Hint: para esto puede utilizar la estética gráfica
geom_line()
murders %>%

ggplot() +

aes(x = population, y = total) +

geom_line() +

labs(title = "Población según número de muertes por pistola",

subtitle = "Gráfico de línea de los estados de EEUU",

caption = "Datos reportados por el FBI, 2010.",

x = "Población",

y = "Número de muertes por pistola")

Actividad 12
Realice un grafico de puntos donde se muestre en el eje X la data de
population y en el eje Y la data del total ,
donde además se muestre la etiqueta de la abreviación del estado en cada
punto. Hint: para esto puede utilizar la
estética gráfica
geom_point() y geom_text() . Para las etiquetas
puedes utilizar el argumento label en la
función
aes()
murders %>%

ggplot() +

aes(x = population, y = total, label=abb) +

geom_point() +

geom_text() +

labs(title = "Población según número de muertes por pistola",

subtitle = "Gráfico de puntos de los estado de EEUU",

caption = "Datos reportados por el FBI, 2010.",

x = "Población",

y = "Número de muertes por pistola")

Dado que las etiquetas se superponen con los puntos, podemos realizar
la misma gráfica pero indicando
únicamente las etiquetas, con tal que se
entienda con mayor claridad nuestra gráfica.

murders %>%

ggplot() +

aes(x = population, y = total, label=abb) +

geom_text() +

labs(title = "Población según número de muertes por pistola",

subtitle = "Gráfico de puntos de los estado de EEUU",

caption = "Datos reportados por el FBI, 2010.",

x = "Población",

y = "Número de muertes por pistola")


Actividad 13
Para el mismo grafico anterior, identifique mediante colores a qué
región pertenece cada punto (es decir, si es del
norte, sur, etc).
Muestre dos versiones de esta misma gráfica: una con únicamente las
etiquetas de cada estado y
otra con únicamente los puntos. Hint:
para esto puedes utilizar el argumento color en la función
aes()

murders %>%

ggplot() +

aes(x = population, y = total, label=abb, color=region) +

geom_text() +

labs(title = "Población según número de muertes por pistola",

subtitle = "Gráfico de puntos de los estado de EEUU",

caption = "Datos reportados por el FBI, 2010.",

x = "Población",

y = "Número de muertes por pistola",

color = "Región")
murders %>%

ggplot() +

aes(x = population, y = total, color=region) +

geom_point() +

labs(title = "Población según número de muertes por pistola",

subtitle = "Gráfico de puntos de los estado de EEUU",

caption = "Datos reportados por el FBI, 2010.",

x = "Población",

y = "Número de muertes por pistola",

color = "Región")
Actividad 14
En algunas gráficas anteriores no podemos ver bien el texto de las
abreviaciones de los estados dado que se
superponen con los puntos. Para
solucionar esto, podemos empujar (nudge en inglés) el texto en
el eje X o en el
eje Y. Dado que hablamos de varios millones de
personas, realice el gráfico de la pregunta anterior donde empuje
las
etiquetas de textos 1.5 millón de personas a la derecha. Hint: para
esto puedes utilizar el argumento nudge_x
en la función
geom_text()

murders %>%

ggplot() +

aes(x = population/10^6, y = total, label=abb, color=region) +

geom_point(size=1) +

geom_text(size=3, nudge_x = 1.5) +

labs(title = "Población según número de muertes por pistola",

subtitle = "Gráfico de puntos de los estado de EEUU",

caption = "Datos reportados por el FBI, 2010.",

x = "Población (en millones)",

y = "Número de muertes por pistola",

color = "Región")

También podría gustarte