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//Rtmp6SWhO8/downloaded_packages
Llamamos la librería
library(readxl)
## Warning: package 'readxl' was built under R version 3.3.2
¡Recuerda poner el directorio!
setwd("/Users/anaescoto/Dropbox/DGAPA/EjercicioR")
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 aquí )
Excel_2014_IMCO <- read_excel("Excel_2014_IMCO.xlsx")
View(Excel_2014_IMCO)
## Warning: running command ''/usr/bin/otool' -L '/Library/Frameworks/
## R.framework/Resources/modules/R_de.so'' had status 1
¿Cómo qué tipo de objeto nos importa este comando?
class(Excel_2014_IMCO)
## [1] "tbl_df" "tbl" "data.frame"
Ya revisamos análisis descriptivo para algunas variables nominales u ordinales. Vamos a hacer algunos gráficos para variables cuantitativas. #Histograma básico
hist(Excel_2014_IMCO$Homicidios)
Podemos modificarlo de a poco a poco. Modificar el título
hist(Excel_2014_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_2014_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_2014_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_2014_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 http://ggplot2.org/book/qplot.pdf
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//Rtmp6SWhO8/downloaded_packages
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.3.2
Podemos hacer histogramas y gráficos de densidad
El comando tiene la siguiente form
qplot (VAR, dara = NombreDataframe, geom=“histogram”) qplot (VAR, dara = NombreDataframe, geom=“density”)
qplot(Homicidios, data = Excel_2014_IMCO, geom = "histogram")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
qplot(Homicidios, data = Excel_2014_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_2014_IMCO)
Una transformación importante en los análisis cuantitativos es la transformación logarítmica
qplot(log(Pobreza), log(Homicidios), data = Excel_2014_IMCO)
Vamos hoy a establecer las regiones para evidenciar subgrupos en nuestros estados.
Excel_2014_IMCO$region<-NA
Vamos 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_2014_IMCO$region[Excel_2014_IMCO$edo==reg] <- "Noroeste"
}
Lo hacemos para el resto de regiones
for(i in noreste) {
reg<-i
Excel_2014_IMCO$region[Excel_2014_IMCO$edo==reg] <- "Noreste"
}
for(i in occidente) {
reg<-i
Excel_2014_IMCO$region[Excel_2014_IMCO$edo==reg] <- "Occidente"
}
for(i in oriente) {
reg<-i
Excel_2014_IMCO$region[Excel_2014_IMCO$edo==reg] <- "Oriente"
}
for(i in centrosur) {
reg<-i
Excel_2014_IMCO$region[Excel_2014_IMCO$edo==reg] <- "Centro Sur"
}
for(i in centronorte) {
reg<-i
Excel_2014_IMCO$region[Excel_2014_IMCO$edo==reg] <- "Centro Norte"
}
for(i in suroeste) {
reg<-i
Excel_2014_IMCO$region[Excel_2014_IMCO$edo==reg] <- "Sur oeste"
}
for(i in sureste) {
reg<-i
Excel_2014_IMCO$region[Excel_2014_IMCO$edo==reg] <- "Sur Este"
}
Con subgrupos podemos agregar otra variable en nuestro gráficos
qplot(log(Pobreza), log(Homicidios), data = Excel_2014_IMCO, shape = region)
## 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).
qplot(log(Pobreza), log(Homicidios), data = Excel_2014_IMCO, colour = region)
Con una regresión lineal
qplot(Pobreza, Homicidios, data = Excel_2014_IMCO, geom = c("point", "smooth"), method = "lm")
## Warning: Ignoring unknown parameters: method
Para tener un subgráfico por región
qplot(Pobreza, Homicidios, data = Excel_2014_IMCO) + facet_grid(. ~ region)
qplot(Pobreza, Homicidios, data = Excel_2014_IMCO, label=Excel_2014_IMCO$edo, geom="text")