Transformación de variables
La función mutate()
de dplyr::
(incluida en el tidyverse()
) permite transformar columnas de un data.frame. Podemos utilizarla con tuberías %>%
para hacer las transformaciones dentro de una cadena de funciones. Por si sola no hace mucho, sin embargo se ocupa de organizar el trabajo de otras funciones que, en efecto, realizan las modificaciones. Un ejemplo es la función recode()
, también de dplyr()
, que facilita reemplazar palabras en una cadena de caracteres o niveles en un factor. La sintaxis básica de recode()
es
recode(columna_que_será_cambiada, "palabra a reemplazar" = "palabra de reemplazo")
recode(ENT, "Distrito Federal" = "Ciudad de México")
1. Utilizando mutate()
y recode()
:
- Corrija el nombre de la Ciudad de México en la base de datos del CONAPO.
- Modifique los nombre de las entidades “Coahuila de Zaragoza” y “Veracruz de Ignacio de la Llave” a sus nombres cortos más usuales.
2. Utilizando mutate()
:
- Duplique el valor de IM para todos los municipios en 2015.
- Convierta, de alguna manera que le parezca, al IM en una variable en la que todas las magnitudes son positivas.
Sumarios de variables numéricas
summarise()
toma una variable numérica y la reduce a un único número (un sumario de esa variable) al aplicarle una función.
3. Utilizando summarise()
- Calcule la media y la mediana de la variable IM para cada Entidad Federativa en los años 2010 y 2015. Es necesario que toda esta información se reúna en una sola estructura de data, un data.frame.
Medidas de tendencia central
La media aritmética es muy útil para resumir datos, sin embargo en algunos casos puede ser engañosas.
4. Ejecute el siguiente código, analice el resultado y evalúe la conveniencia de utilizar la media como medida de tendencia central.
library(tidyverse)
marginacion %>%
filter(AÑO == "2015" & ENT != "Nacional") %>%
ggplot(aes(x=ANALF)) +
geom_histogram(bins = 50, fill = "blue", alpha = 0.5) +
geom_vline(aes(xintercept = mean(ANALF)), linetype = "dotted") +
geom_vline(aes(xintercept = median(ANALF)), linetype = "dotted") +
annotate("text", x = 11, y = 180, label = "media", angle = 90) +
annotate("text", x = 9, y = 180, label = "mediana", angle = 90) +
theme_minimal() +
scale_x_continuous(breaks = c(0, 5, 11.7, 15, 25, 35, 45, 55)) +
labs(title = "Porcentaje de población analfabeta Municipio de México",
x = "Porcentaje de población analfabeta",
y = "Municipios",
caption = "Elaboración propia\nDatos CONAPO 2015")
5. ¿Y en este caso?
marginacion %>%
filter(AÑO == "2015" & ENT != "Nacional") %>%
ggplot(aes(x=PO2SM)) +
geom_histogram(bins = 50, fill = "blue", alpha = 0.5) +
geom_vline(aes(xintercept = mean(PO2SM)), linetype = "dotted") +
geom_vline(aes(xintercept = median(PO2SM))) +
annotate("text", x = 54.5, y = 110, label = "media", angle = 90) +
annotate("text", x = 57.8, y = 110, label = "mediana", angle = 90) +
theme_minimal() +
scale_x_continuous(breaks = seq(0, 100, 5)) +
labs(title = "Bajos salarios por municipio",
x = "Porcentaje de población con ingresos menores a 2 SM por Municipio",
y = "Municipios",
caption = "Elaboración propia\nDatos CONAPO 2015")
Cargue primero el data.frame
marginacion
en su entorno de trabajo.No desepere, no todos los gráficos en R son tan complicados como este.