Path: blob/main/Trabajo_grupal/WG2/Tarea2_Grupo2.R
2714 views
1# ==================================2# Respuesta al Ejercicio Grupal No.23# ==================================45#Primero alistaremos una seria de librerías que serán relevantes para el trabajo con la base de datos67library(dplyr) # librería de limpieza de datos (será esencial más adelante ;)8library(tidyr)# librería de limpieza de datos9library(readxl) # lobreria para subir archivos excel, csv10getwd() #es necesario identificar el working director para saber donde estaremos generando resultados y cual es el punto de origen desde el cual buscaremos información1112file.choose()13ruta_excel <- "D:\\Users\\Usuario\\Documents\\GitHub\\1ECO35_2022_2\\data\\junin_region.xlsx"14excel_sheets(ruta_excel)1516junin <- read_excel(ruta_excel)171819# (1) Obtener el nombre de todas las variables202122str(junin) #la función str da tanto un listado de las variables como información que las caracteriza23names(junin) #Si solo nos interesa desplegar el nombre de las columnas, posiblemente sea mejor recurrir a la función names242526# (2) Mostrar el tipo de variables (type) así como presentar los principales estadísticos.2728str(junin) #este comando nos permite conocer la estructura de nuestra data29#A partir de este notamos que nuestra base es de 197 observaciones x 42 variables30#Asímismo, la mayor parte de nuestras variables son de tipo numérico, sin embargo, variables como Region, Distrito y Comunidad son character (lo que en otros programas se cuenta como string)3132summary(junin) #el comando precedente genera los estadísticos principales de nuestras variables numéricas (mínimo, quintiles 1 y 3,mediana, media y máximo) y character (moda y largo)3334#Si quisieramos conocer la desviación estándar de las observaciones de una variable, por ejemplo, instruction_men, entonces:3536sd(junin$instruction_men)3738#Adicionalmente, podemos requerir el cálculo de un subset de variables relevantes3940attach(junin)41subset1 <- cbind(natives, whites, mestizos, blacks)42summary(subset1)4344#También podemos recurrir a otras librerías para hacer el análisis descriptivo45install.packages("psych")46library(psych)47describe(subset1) #este comando en específico también nos da información sobre la simetría y la curtosis de la distribución de datos484950# (3) Verifique si las columnas presentan missing values5152any( is.na(junin) ) #esto quiere decir que en la base hay al menos un valor missing53any( is.null(junin) ) #mientras que no hay missings del tipo null545556colSums(is.na(junin))# Notamos que son varias las columnas con valores missing5758#Podemos identificar el número de columna y, por ende, el nombre de las columnas que contienen missings5960names(which(colSums(is.na(junin))>0))616263#Una forma alternativa de realizar esto, puede ser a través de la función apply6465colnames(junin)[apply(junin, 2, anyNA)] #así requerimos los nombres de las columnas (por ello el segundo argumento es 2) que tienen missings666768# (4) Cambie el nombre de las siguientes variables:69#place : comunidad70#men_not_read: homxlee71#women_not_read: mujerxlee72#total_not_read: totalxlee7374#Podemos hacernos del paquete dplyr y renombrar las columnas directamente7576install.packages("dplyr")77library(dplyr)7879head(junin) #hasta este punto las columnas tenían los nombres originales8081junin <- rename(junin, comunidad="Place", homxlee="men_not_read", mujerxlee="women_not_read", totalxlee= "total_not_read")8283head(junin) #ahora las columnas señaladas tienen nombres modficiados848586# (5) Muestre los valores únicos de las siguientes variables ( comunidad , District)8788#Para hallar los valores únicos de una columna determinada la llamamos tras el signo $, y aplicamos el comando unique()89unique(junin$comunidad)9091unique(junin$District)929394# (6) Crear columnas con las siguiente información: el % de mujeres del que no escriben ni leen (mujerxlee/totalxlee) % de varones que no escriben ni leen (homxlee/totalxlee) y % de nativos respecto al total de la población. Para el total de la población sumar (peruvian_men + peruvian_women + foreign_men + foreign_women)9596#Podemos abordar esto de múltiples formas97#Primero podríamos usar el operador $ (debemos usarlo tanto para indicar que la nueva columna formará parte de la base junin como para llamar a las columnas dentro de junin que serán operadas)9899junin$per_women <- junin$mujerxlee/junin$totalxlee100101head(junin$per_women)102103#(7) Crear una base de datos con la siguiente información:104105# a. Quedarse con la información de los distritos de Ciudad del Cerro, Jauja, Acolla, San Gerónimo, Tarma, Oroya y Concepción106#b. Luego quedarse con las comunidades que cuentan con nativos y mestizos.107#c. Solo quedarse con las variables nombre de distrito y comunidad.108#d. Guardar la base de datos en formato csv en la carpeta data. (Use el siguiente nombre Base_cleaned_WG(numero de grupo109110#a. Debemos filtrar la base para quedarnos con un subset que cumpla una serie de características (tarea muy común en la ciencia de datos)111112junin_f2 <- filter(junin, District=="CIUDAD DEL CERRO"113| District=="JAUJA"114|District=="ACOLLA"115|District=="SAN GERÓNIMO"116|District=="TARMA"117|District=="OROYA"118|District=="CONCEPCIÓN")119120#b. ahora buscamos un subset con personas nativas o mestizas121#Por ello filtramos para quedarnos con observaciones cuyos números de nativos y mestizos sea mayor a cero122123junin_f2 <- filter(junin, natives>0124& mestizos >0)125126#c. Primero definimos las columnas de interés (sus nombres)127128queda <- c("District","comunidad")129junin_f3 = junin_f2[queda]130131132write.csv(junin_f3,"D:\\Users\\Usuario\\Documents\\GitHub\\1ECO35_2022_2\\data\\Base_cleaned_WG2.csv", row.names = FALSE)133134