##Tarea de R

1. Cargar en R las hojas Base1, Base2 y Base3 como tres frames independientes

install.packages(“readxl”) library(readxl)

1.1. Cambiamos los nombres

base1 <- read_excel(“C:/Users/Priscilla Nájera/Downloads/0 Inicial R CFIA v4 3.xlsx”, sheet=“Base1”) View(base1) base2 <- read_excel(“C:/Users/Priscilla Nájera/Downloads/0 Inicial R CFIA v4 3.xlsx”, sheet=“Base2”) View(base2) base3 <- read_excel(“C:/Users/Priscilla Nájera/Downloads/0 Inicial R CFIA v4 3.xlsx”, sheet=“Base3”) View(base3)

2. En R, eliminar las filas duplicadas de la Base2 y la Base3

install.packages(“dplyr”) library(dplyr)

base2_sin_dups <- distinct(base2) View(base2_sin_dups) base3_sin_dups <- distinct(base3) View(base3_sin_dups)

3. Unir la Base1 con la Base2 por la variable Id_Sub_obra y la Base1 con la Base3 por la variable Id_Clasificaci_n. En un comentario, explicar la importancia de haber eliminado los duplicados en el paso anterior

base1y2 <- left_join(base1, base2_sin_dups, by = “Id_Sub_obra”) View(base1y2) base1y3 <- left_join(base1, base3_sin_dups, by = “Id_Clasificaci_n”) View(base1y3)

Si no se hubieran eliminado los duplicados habría una doblecontabilización, los resultados serían erroneos

4.1. A partir de esta nueva Base que contiene la información de Base1, Base2 y Base3; considerar sólo los proyectos que en su clasificación sea nuevo.

basefinal <- left_join(base1y2, base3_sin_dups, by = “Id_Clasificaci_n”) View(basefinal)

basenuevo <- filter(basefinal, Clasificaci_n == “NUEVO”) View(basenuevo)

4.2. Excluir aquellas observaciones en las que el subproyecto sea condominio. Tomar los datos a partir de diciembre 18 (inclusive)

str(basenuevo$Período)

Base_Final <- basenuevo %>% filter(Subobra != “CONDOMINIO”, Período >= as.POSIXct(“2018-11-01”)) View(Base_Final)

5.Calcular los Niveles y variaciones mensuales

install.packages(“lubridate”) library(lubridate)

base_niveles <- Base_Final %>% group_by(Período) %>% summarise(Area = sum(Área, na.rm = TRUE)) View(base_niveles)

base0 <- base_niveles\(Area[base_niveles\)Período == as.Date(“2018-12-01”)] View(base0)

base_niveles <- base_niveles %>% mutate(Nivel = (Area / base0) * 100) base_niveles <- base_niveles %>% mutate(Variacion = (Nivel - lag(Nivel)) / lag(Nivel) * 100) View(base_niveles)

6. Con base en los resultados del punto 5, elaborar un gráfico

install.packages(“ggplot2”) library(ggplot2) install.packages(“scales”) library(scales)

##6.1. Gráfico de Lineas ggplot(base_niveles, aes(x = Período, y = Nivel)) + geom_line(color = “pink”, size = 1) + labs(title = “Niveles mensuales”, x = “Fecha”, y = “Nivel”) + theme_minimal()

6.2. Gráfico de Variaciones

ggplot(base_niveles, aes(x = Período, y = Variacion)) + geom_col(fill = “green”) + labs(title = “Variaciones mensuales”, x = “Fecha”, y = “Variación (%)”) + theme_minimal()

6.3. Gráfico de ambos

ggplot(base_niveles, aes(x = Período)) + geom_col(aes(y = Variacion), fill = “pink”, alpha = 0.6) + geom_line(aes(y = Nivel), color = “green”, size = 1) + labs(title = “Niveles y Variaciones Mensuales”, x = “Fecha”, y = “Valor”) + theme_minimal()