Documentos de Académico
Documentos de Profesional
Documentos de Cultura
R Sesión3
R Sesión3
Procesamiento estadístico
de datos con R
DDTIC_PL_2022
¿Qué veremos hoy?
1)Presentación
2)Repaso
3)Preguntas evaluación
4)Temas 3 y 4
5)Ejercicios
6)Cierre
DDTIC_PL_2022
Objetivo general
DDTIC_PL_2022
Funciones
Una función es un bloque de código que solo se ejecuta
cuando se le llama.
Puede pasar datos, conocidos como parámetros, a una
función.
Una función puede devolver datos como resultado.
DDTIC_PL_2022
Funciones ejemplo
#Función que resuelve ecuaciones cuadráticas
DDTIC_PL_2022
Estructuras de control: ejemplo
#Crear una función que determine el área de un círculo, debe
evaluar si el radio es menor de cero e imprimir el mensaje
"No se puede calcular el área"
DDTIC_PL_2022
Estructuras de control: condicionales
DDTIC_PL_2022
Estructuras de control: if anidado
if (Condición) { # La condición debe devolver TRUE o FALSE
# Código
} else {
# Código
if(Condición 2) { # La condición debe devolver TRUE o
FALSE
# Código
} else {
# Más código
}
Bravo L. P. & Salgado C. F. (2019) Introducción a R y SIG. https://bookdown.org/chescosalgado/intro_r/
}
DDTIC_PL_2022
Estructuras de control: ejemplo
#Importar Base “CalcularIMCSex.csv”
#Calcular el IMC de acuerdo con la fórmula:
#IMC = Peso (kg) / altura (m)²
#Crear el Vector ‘Clasificacion’ usando la función elseif() y clasificar a las
personas de acuerdo si IMC y a la Clasificación del IMSS
#Bajo de Peso <= 18.4
#Normal 18.5 a 24.9
#Sobrepeso 25 a 29.9
#Obesidad >30
Bravo L. P. & Salgado C. F. (2019) Introducción a R y SIG. https://bookdown.org/chescosalgado/intro_r/
DDTIC_PL_2022
DataFrame
Los data frames son estructuras de datos de dos dimensiones (rectangulares) que
pueden contener datos de diferentes tipos, por lo tanto, son heterogéneas. Esta
estructura de datos es la más usada para realizar análisis de datos y seguro te
resultará familiar si has trabajado con otros paquetes estadísticos.
Los data frames son una versión más flexible de una matriz. Mientras que en una
matriz todas las celdas deben contener datos del mismo tipo, los renglones de un
data frame admiten datos de distintos tipos, pero sus columnas conservan la
restricción de contener datos de un sólo tipo.
DDTIC_PL_2022
DataFrame
DDTIC_PL_2022
DataFrame
#Crear DataFrame
DDTIC_PL_2022
DataFrame
# Podemos usar dim() en un data frame
dim(mi_ejemplo)
DDTIC_PL_2022
Matriz a DataFrame
#Creamos una matriz
matriz <- matrix(1:12, ncol = 4)
DDTIC_PL_2022
Operaciones con un data frame
Si hacemos una operación aritmética a un data frame, este
se vectorizará.
mi_ejemplo * 2
DDTIC_PL_2022
Operaciones con un data frame
#Una sola columna
summary(mi_ejemplo$t_reaccion)
#Dos columnas
summary(mi_ejemplo[c('t_reaccion','edad')])
summary(mi_ejemplo[3:4]) #Usamos el índice de la columna
DDTIC_PL_2022
Operaciones con un data frame
Con un Data Frame podemos acceder a diferentes operaciones y
análisis.
DDTIC_PL_2022
Operaciones con un data frame
Importar base de datos “USArrests” y asignarla a la variable df.
#Antes de hacer correlación, hacer las
df <- USArrests gráficas de las combinaciones de
#df variables que faltan
DDTIC_PL_2022
Operaciones con un data frame
#Podemos seleccionar renglones específicos (Hacer subconujntos)
para ejecutar diferentes análisis
#Hacer los siguientes vectores
hr <- c(87, 78, 86, 62, 69, 69, 68, 67, 75, 76)
edad <- rep(c(45, 63, 40, 70), c(3, 2, 4, 1))
#Genero un data frame
Datos <- data.frame(cbind(hr,age))
#Selecciono renglones que cumplen con la condición
Datos2 <- Datos[Datos$age > 60, ] #DataFrame[renglón,columna]
#La función rep repite un numero un determinado número de veces: rep(número, veces que se repite)
DDTIC_PL_2022
Importar datos
Importar base de datos “USArrests” y asignarla a la variable df.
df <- USArrests
#df
DDTIC_PL_2022
Ejercicio
Numerosas investigaciones muestran que las partículas PM10 y
PM2.5 afectan a la salud humana. Algunas de ellas sugieren una
relación directa con enfermedades tales como la diabetes (Pearson,
Bachireddy, Shyamprasad, Goldfine & Brownstein, 2010; He et al.,
2017) o problemas en el desarrollo fetal .
DDTIC_PL_2022
Ejercicio
Importar la base de datos “Prom_2022_PM10_ PM2-5 .csv”* y
seleccionar los datos los datos de la estación Iztacalco (IZT) y los
datos de partículas PM10.
plot(Datos$Mes,Datos$value)
*https://datos.cdmx.gob.mx/dataset/promedios-particulas-suspendidas
DDTIC_PL_2022
Ejercicio 2
1)A partir de “Prom_2022_PM10_ PM2-5 .csv”, seleccionar las
estaciones Benito Juárez (BJU) y Milpa Alta (MPA) y los datos de
partículas PM2.5 y ponerlos en un data frame llamado Datos2_5.
(4 puntos)
2)Convertir Datos2_5$id_station en un factor.(3 puntos)
3)Graficar los datos de Estación Vs Valor(3 puntos)
*https://datos.cdmx.gob.mx/dataset/promedios-particulas-suspendidas
DDTIC_PL_2022
BoxPlot
El gráfico de caja (“box-plot” en inglés) es una forma
de presentación estadística destinada,
fundamentalmente, a resaltar aspectos de la
distribución de las observaciones en una o más series
de datos cuantitativos. Reemplaza, en consecuencia,
al histograma y a la curva de distribución de
frecuencias sobre los que tiene ventajas en cuanto a
la información que brinda y a la apreciación global que
surge de la lectura.
Fue ideado por John Tukey, de la Universidad de
Princeton (U.S.A.) en 1977 y los detalles que siguen
corresponden a la descripción dada por este autor.
DDTIC_PL_2022
Exportar Data Frame
#Usamos la siguiente instrucción
write.csv(NombreDataFrame, RutayNombreDelArchivo, row.names = FALSE)
#write.csv(Datos2_5, paste(Ruta,"Datos2.5",".csv"))
DDTIC_PL_2022
Tidyverse
Tidy: having everything ordered and arranged in the right place, or liking to
keep things. https://dictionary.cambridge.org/dictionary/english/tidy?q=Tidy
DDTIC_PL_2022
Tidyverse: método de trabajo
Tidy: having everything ordered and arranged in the right place, or liking to
keep things. https://dictionary.cambridge.org/dictionary/english/tidy?q=Tidy
DDTIC_PL_2022
Usando Tidyverse: Limpieza de base de datos
#Definir ruta de trabajo:
Ruta <-"~/Documentos/CursosUnam/R Studio/Bases/"
#En windows: setwd("d:\\Documents\\CursoR") se debe usar “\\”
setwd(Ruta)
https://www.rpubs.com/camilamila/limpieza_R
DDTIC_PL_2022
Usando Tidyverse: Limpieza de base de datos
#Cargar la siguientes bibliotecas
library(readxl) #Lee archivos excel
library(dplyr) #Gramática (Funciones) de manipulación de datos
library(tidyr) #Ayuda a organizar los datos
#Importar datos
morosidad16 <- read_xlsx("morosidad16.xlsx")
morosidad17<- read_xlsx("morosidad17.xlsx")
DDTIC_PL_2022
Usando Tidyverse: Limpieza de base de datos
Campos o variables de las bases de datos:
DDTIC_PL_2022
Usando Tidyverse: Unión de bases de datos
Para unir dos base de datos diferenets usamos la función merge()
DDTIC_PL_2022
Usando Tidyverse: Unión de bases de datos
#Para unir las bases de datos se necesita una o más variables (campos) en común.
#Ambas bases tienen el campo “id”, ese campo se usará para la unión
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/merge
DDTIC_PL_2022
Usando dplyr
Se usa para organizar y seleccionar datos de forma fácil.
Algunas funciones útiles son:
1)select() #permite seleccionar columnas: select(dataframe, col1, col2)
2)filter()
3)arrange()
4)mutate()
5)summarize().
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/merge
DDTIC_PL_2022
Usando select
select(DataFrame, col1, col2, col3…, etc)
select(morosidad, id, deuda17, deuda16) #Selecciona 3 columnas
select(morosidad, -Estado) #Selecciona todas las columnas excepto la columa Estado
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/merge
DDTIC_PL_2022
Usando filter
#Pemite seleccionar un grupo de filas o reglones de acuerdo a una condición
#Sintaxis: filter(base, condición)
filter(morosidad, deuda17>2083074) #selcciona la deuda mayor de 2,083,074
filter(morosidad, deuda17>deuda16) #Selecciona renglones en donde aumentó la deuda del año16
al año 17
filter(morosidad1, deuda17>1000000 & situacion.x=="DIFICIL COBRO")
DDTIC_PL_2022
Ejercicio 3
Seleccionar los datos de las empresas o personas que han estado morosas en los dos
años y guardarlo en la variable morosidad1.
(valor: 2 puntos)
DDTIC_PL_2022
Usando mutate()
#Permite crear nuevas columnas de forma fácil.
#Sintaxis: mutate(base, NombreNuevaColumna = (operación o condición))
#Cambio entre la deuda del año 16 al año 17
morosidad1 <- mutate(morosidad1, cambio.deuda=deuda17-deuda16)
DDTIC_PL_2022
Ejercicio 4
Crear la variable (Columna) tipo.cambio en morosidad1 que categorice el cambio en la
deuda. Si el cambio = 0(cero), entonces “Sin cambio”, Si cambio < 0(cero), “Disminuyó”,
en caso contrario, “Aumentó” (4 ptos)
DDTIC_PL_2022
Múltiples columnas
#Se pueden crear múltiples columnas
DDTIC_PL_2022
Usando paquete dplyr
#Se pueden crear múltiples columnas
DDTIC_PL_2022
Comando pipe (%>%)
#Se usa %>% para asignación múltiple a una misma base
write.csv(morosidad2, "baselimpia.csv")
DDTIC_PL_2022
Reorganizar Bases de datos
DDTIC_PL_2022
Regresar a la Bases de datos original
#Regresamos a la base orignal
CertificadosOriginal <- spread(CertificadosMes, Mes, -A.O)
DDTIC_PL_2022
Ejercicio 5
Importe la base “AsesoriasProfedet.csv”, reordene la base de tal modo que se tengan
las variables “Ciudad”, A.O (Año), Mes y Frecuencia. (3 ptos)
Selecciones los datos del año 2018 de la ciudad de Villahermosa (3 ptos)
Valor 10 ptos
DDTIC_PL_2022
Contacto
DDTIC_PL_2022