AE
18/01/19
Ya importamos datos desde el formato "dbf". Muchas veces construimos nuestra bases de datos desde excel. Vamos a trabajar con una base por Estados, con indicadores que dan cuenta de la competitividad estatal. Vamos instalar la librerìa "readxl"
install.packages("readxl", repos = "http://cran.us.r-project.org", dependencies = TRUE)##
## The downloaded binary packages are in
## /var/folders/fr/mw1x21js54367mjdhqsjfwqm0000gn/T//RtmpftxLgu/downloaded_packages
Llamamos la librería
library(readxl)¡Recuerda poner el directorio!
setwd("/Users/anaescoto/Dropbox/SFP")Luego aplicamos el comando. Es de la siguiente forma. Nota que en el el paréntesis va el directorio donde tenemos nuestro archivo. (La base se puede descargar desde "https://www.dropbox.com/s/6ytu6o967zvjjli/Excel_2016_IMCO.xlsx?dl=0""
Excel_2016_IMCO <- read_excel("Excel_2016_IMCO.xlsx")## New names:
## * `` -> `..101`
## * `` -> `..102`
## * `` -> `..103`
#View(Excel_2016_IMCO)hist(Excel_2016_IMCO$Homicidios)Podemos modificarlo de a poco a poco. Modificar el título
hist(Excel_2016_IMCO$Homicidios, main="Histograma de Homicidios") #Histograma de homicidios en los estados con el título “Histograma de homicidos” Le podemos modificar el título del eje de las x y de las y
hist(Excel_2016_IMCO$Homicidios, main="Histograma de Homicidios", xlab="Homicidios", ylab="Frecuencia") ¡A ponerle colorcitos! Recuerda aquí hay una lista http://www.stat.columbia.edu/~tzheng/files/Rcolor.pdf
hist(Excel_2016_IMCO$Homicidios, main="Histograma de Homicidios", xlab="Homicidios", ylab="Frecuencia", col="deeppink1") Notamos que hay una agrupación de estados con menos de 40 homicidios por cada 100,000 habitantes.
Hagamos histogramas de otras variables
hist(Excel_2016_IMCO$`Esperanza de vida`, main="Esperanza de Vida", xlab="Años", ylab="Frecuencia", col="deepskyblue", border ="deepskyblue4" ) ¿Algo diferente? Cuando hay espacios en el nombre de nuestras variables en un dataframe, tenemos que ponerlo dentro de estos símbolos ``
Hoy vamos a presentar a un gran paquete ¡Es de los famosos! Y tiene más de diez años. https://qz.com/1007328/all-hail-ggplot2-the-code-powering-all-those-excellent-charts-is-10-years-old/
Hay dos funciones en paquete ggplot2
qplot() – para "quick plots", gráficos rápidos. Nos vamos a concentrar en este curso en estos.
ggplot() – Para controlar de manera "granular" todo lo de nuestros gráficos.
Más info de qplot https://ggplot2.tidyverse.org/reference/qplot.html
Vamos a empezar, como siempre, instalando el comando
install.packages("ggplot2", repos = "http://cran.us.r-project.org", dependencies = TRUE)##
## The downloaded binary packages are in
## /var/folders/fr/mw1x21js54367mjdhqsjfwqm0000gn/T//RtmpftxLgu/downloaded_packages
library(ggplot2)Podemos hacer histogramas y gráficos de densidad
El comando tiene la siguiente forma:
qplot(Homicidios, data = Excel_2016_IMCO, geom = "histogram")## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
qplot(Homicidios, data = Excel_2016_IMCO, geom = "density")Vamos a hacer un par de gráficos de dos variables. Vamos a graficar los datos de los secuestros y pobreza. Este gráfico se conoce como un scatterplot.
Checa: en este comando, como usamos la opción de "data", no tenemos que poner el nombre del data frame antes de la variable.
El formato es el siguiente:
qplot(VariableX, VariableY, data = NombreDataframe)
En nuestro ejemplo queda así:
qplot(Pobreza, Homicidios, data = Excel_2016_IMCO)Una transformación importante en los análisis cuantitativos es la transformación logarítmica
qplot(log(Pobreza), log(Homicidios), data = Excel_2016_IMCO) # Guardando nuestro gráfico como un objeto
grafico<-qplot(log(Pobreza), log(Homicidios), data = Excel_2016_IMCO)Existe un add-in - es decir un complemento - para que podamos modificar más fácilmente los gráficos que hacemos con ggplot. Lo tenemos que instalar. Así como hemos instalado nuestros otras paqueterías.
install.packages("ggThemeAssist", repos = "http://cran.us.r-project.org", dependencies = TRUE)##
## The downloaded binary packages are in
## /var/folders/fr/mw1x21js54367mjdhqsjfwqm0000gn/T//RtmpftxLgu/downloaded_packages
library(ggThemeAssist)Para utilizarlo, tenemos que nombrar el objeto que queremos editar (por eso aprendimos a guardarlo en un objeto anteriormente). Lo escribimos. Lo seleccionamos y buscamos el complemento en la pestaña "Addins"
Vamos hoy a establecer las regiones para evidenciar subgrupos en nuestros estados.
Excel_2016_IMCO$region<-NAVamos a hacer vectores de cada región
noroeste<-c("Baja California","Baja California Sur", "Chihuahua", "Durango","Sinaloa", "Sonora")
noreste<- c("Coahuila", "Nuevo León", "Tamaulipas")
occidente <-c("Colima", "Jalisco", "Michoacán", "Nayarit")
oriente <- c("Hidalgo", "Puebla","Tlaxcala", "Veracruz")
centronorte<-c("Aguascalientes", "Guanajuato", "Querétaro", "San Luis Potosí", "Zacatecas")
centrosur<- c("Ciudad de México", "México", "Morelos")
suroeste <-c("Campeche", "Quintana Roo", "Tabasco","Yucatán")
sureste <- c("Chiapas", "Guerrero", "Oaxaca")Mi primer loop
R puede hacer loop con el comando for Nos permite repetir una operación de acuerdo a los valores de una secuencia o de un vector. Aquí lo hacemos para el vector noroeste
for(i in noroeste) {
reg<-i
Excel_2016_IMCO$region[Excel_2016_IMCO$edo==reg] <- "Noroeste"
}Lo hacemos para el resto de regiones
for(i in noreste) {
reg<-i
Excel_2016_IMCO$region[Excel_2016_IMCO$edo==reg] <- "Noreste"
}
for(i in occidente) {
reg<-i
Excel_2016_IMCO$region[Excel_2016_IMCO$edo==reg] <- "Occidente"
}
for(i in oriente) {
reg<-i
Excel_2016_IMCO$region[Excel_2016_IMCO$edo==reg] <- "Oriente"
}
for(i in centrosur) {
reg<-i
Excel_2016_IMCO$region[Excel_2016_IMCO$edo==reg] <- "Centro Sur"
}
for(i in centronorte) {
reg<-i
Excel_2016_IMCO$region[Excel_2016_IMCO$edo==reg] <- "Centro Norte"
}
for(i in suroeste) {
reg<-i
Excel_2016_IMCO$region[Excel_2016_IMCO$edo==reg] <- "Sur oeste"
}
for(i in sureste) {
reg<-i
Excel_2016_IMCO$region[Excel_2016_IMCO$edo==reg] <- "Sur Este"
}Con subgrupos podemos agregar otra variable en nuestro gráficos
q1<-qplot(log(Pobreza), log(Homicidios), data = Excel_2016_IMCO, shape = region)
q1## Warning: The shape palette can deal with a maximum of 6 discrete values
## because more than 6 becomes difficult to discriminate; you have 8.
## Consider specifying shapes manually if you must have them.
## Warning: Removed 7 rows containing missing values (geom_point).
q2<-qplot(log(Pobreza), log(Homicidios), data = Excel_2016_IMCO, colour = region)
q2Con una regresión lineal
q3<-qplot(Pobreza, Homicidios, data = Excel_2016_IMCO, geom = c("point", "smooth"), method = "lm")## Warning: Ignoring unknown parameters: method
q3Para tener un subgráfico por región. A veces vale la pena hacer un objeto ggplot y luego modificarlo. En general podemos "sumar" nuevas opciones
q4<-qplot(Pobreza, Homicidios, data = Excel_2016_IMCO) Regiones por columnas
q4 + facet_grid(. ~ region)Regiones por filas
q4 + facet_grid(region ~ . )Recuadros por regiones
q4 + facet_wrap("region")q5<-qplot(Pobreza, Homicidios, data = Excel_2016_IMCO, label=Excel_2016_IMCO$edo, geom="text")
q5q6<-qplot(Pobreza, Homicidios, data = Excel_2016_IMCO, label=Excel_2016_IMCO$edo, geom=c("text", "smooth"), method=lm)## Warning: Ignoring unknown parameters: method
q6