##### UNIVERSIDAD CENTRAL DEL ECUADOR #####
#### AUTOR: MARTIN SARMIENTO ####
### CARRERA: INGENIERÍA EN PETRÓLEOS #####
#### VARIABLE ESTADO OPERATIVO ####
## DATASET ##
setwd("~/R/OPERATIONAL_STATUS")
# Cargar dataset
Datos <- read.csv("DataSet_prov.csv", sep = ";", fileEncoding = "latin1")
# Estructura de los datos
str(Datos)## 'data.frame': 5075 obs. of 30 variables:
## $ FID_ : int 0 2 3 4 5 6 10 11 12 13 ...
## $ OBJECTID : int 127 129 130 131 132 133 137 138 139 140 ...
## $ code : chr "00127-ARG-P" "00129-ARG-G" "00130-ARG-P" "00131-ARG-P" ...
## $ plant_name : chr "Aconcagua solar farm" "Altiplano 200 Solar Power Plant" "Altiplano 200 Solar Power Plant" "Anchoris solar farm" ...
## $ country : chr "Argentina" "Argentina" "Argentina" "Argentina" ...
## $ operational_status : chr "announced" "operating" "operating" "construction" ...
## $ longitude : chr "-68,8713" "-66,895798" "-66,926102" "-68,915001" ...
## $ latitude : chr "-32,998501" "-24,1392" "-24,073999" "-33,330101" ...
## $ elevation : int 929 4000 4000 937 865 858 570 1612 665 3989 ...
## $ area : chr "250,337006" "4397290" "5774,399902" "645,163025" ...
## $ size : chr "Pequeña" "Grande" "Pequeña" "Pequeña" ...
## $ slope : chr "0,574179" "1,60257" "6,24265" "0,902748" ...
## $ slope_type : chr "Plano o casi plano" "Plano o casi plano" "Moderado" "Plano o casi plano" ...
## $ curvature : chr "0,000795" "-0,002781" "-0,043699" "0,002781" ...
## $ curvature_type : chr "Superficies planas o intermedias" "Superficies planas o intermedias" "Superficies cóncavas / Valles" "Superficies planas o intermedias" ...
## $ aspect : chr "55,124672" "188,707367" "270,913513" "108,434952" ...
## $ aspect_type : chr "Northeast" "South" "West" "East" ...
## $ dist_to_road : chr "127,2827045" "56014,95403" "52696,78572" "335,9280031" ...
## $ ambient_temperature : chr "12,6" "6,8" "6,8" "13,1" ...
## $ ghi : chr "6,11" "8,012" "7,878" "6,119" ...
## $ humidity : chr "53,74" "53,74" "53,74" "53,74" ...
## $ wind_speed : chr "3,7789" "7,02062" "8,32836" "3,87037" ...
## $ wind_direction : chr "55,099998" "55,099998" "55,099998" "55,099998" ...
## $ dt_wind : chr "Northeast" "Northeast" "Northeast" "Northeast" ...
## $ solar_aptitude : chr "0,746197" "0,8" "0,726996" "0,595309" ...
## $ solar_aptitude_rounded: int 7 8 7 6 7 7 7 8 7 8 ...
## $ solar_aptittude_class : chr "Alta" "Alta" "Alta" "Media" ...
## $ capacity : chr "25" "101" "107" "180" ...
## $ optimal_tilt : int 31 26 26 31 33 30 31 29 31 27 ...
## $ pv_potential : chr "4,983" "6,389" "6,392" "4,969" ...
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#Extraer variable
Status <- Datos$operational_status
# EDAvariable nominal
TDF_status <- table(Status)
tabla_status <- as.data.frame(TDF_status)
hi <- tabla_status$Freq/sum(tabla_status$Freq)
hi_porc <- hi*100
sum(hi_porc)## [1] 100
### Agrupación ###
tabla_resumen <- tabla_STATUS %>%
mutate(grupo = case_when(
grepl("cancelled - inferred 4 y", Status, ignore.case = TRUE) ~ "Cancelado (Inferred 4y)",
grepl("shelved - inferred 2 y", Status, ignore.case = TRUE) ~ "Archivado (Inferred 2y)",
grepl("operating", Status, ignore.case = TRUE) ~ "Operativo",
grepl("announced", Status, ignore.case = TRUE) ~ "Anunciado",
grepl("pre-construction", Status, ignore.case = TRUE) ~ "Pre-Construcción",
grepl("construction", Status, ignore.case = TRUE) ~ "Construcción",
grepl("mothballed", Status, ignore.case = TRUE) ~ "Inactivo (Mothballed)",
grepl("shelved", Status, ignore.case = TRUE) ~ "Archivado (Shelved)",
grepl("cancelled", Status, ignore.case = TRUE) ~ "Cancelado",
TRUE ~ "Otros"))
# Definimos el orden
orden_especifico <- c(
"Operativo",
"Anunciado",
"Construcción",
"Pre-Construcción",
"Inactivo (Mothballed)",
"Archivado (Shelved)",
"Archivado (Inferred 2y)",
"Cancelado",
"Cancelado (Inferred 4y)",
"Otros")
tabla_resumen <- tabla_resumen %>%
mutate(grupo = factor(grupo, levels = orden_especifico)) %>%
group_by(grupo) %>%
summarise(
Frecuencia = sum(Freq),
Porcentaje = sum(hi_porc)) %>%
arrange(grupo)
# Renombramos columnas
colnames(tabla_resumen) <- c("Estado","ni","hi (%)")
# Tabla Intermedia GT
tabla_resumen_gt <- tabla_resumen %>%
gt() %>%
tab_header(
title = md("**Tabla N°1 de Agrupación por Estado Operativo de las Plantas Solares**")) %>%
tab_source_note(source_note = "Autor: Martin Sarmiento") %>%
cols_label(
Estado = "Estado Operativo",
ni = "Frecuencia (ni)",
`hi (%)` = "Porcentaje (hi%)") %>%
fmt_number(columns = c(`hi (%)`), decimals = 2) %>%
tab_options(
heading.title.font.size = px(16),
heading.subtitle.font.size = px(14),
column_labels.background.color = "#F0F0F0")
# Mostramos la tabla
tabla_resumen_gt| Tabla N°1 de Agrupación por Estado Operativo de las Plantas Solares | ||
| Estado Operativo | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|
| Operativo | 1752 | 34.52 |
| Anunciado | 76 | 1.50 |
| Construcción | 111 | 2.19 |
| Pre-Construcción | 2795 | 55.07 |
| Inactivo (Mothballed) | 2 | 0.04 |
| Archivado (Shelved) | 30 | 0.59 |
| Archivado (Inferred 2y) | 76 | 1.50 |
| Cancelado | 209 | 4.12 |
| Cancelado (Inferred 4y) | 24 | 0.47 |
| Autor: Martin Sarmiento | ||
#### Crear de fila de totales ####
tabla_resumen$Estado <- as.character(tabla_resumen$Estado)
totales <- c("TOTAL", sum(tabla_resumen$ni, na.rm=TRUE), sum(tabla_resumen$`hi (%)`, na.rm=TRUE))
tabla_Status_Final <- rbind(tabla_resumen, totales)
# Convertir a números para GT
tabla_Status_Final$ni <- as.numeric(tabla_Status_Final$ni)
tabla_Status_Final$`hi (%)` <- as.numeric(tabla_Status_Final$`hi (%)`)
# TABLA 1
tabla_final_gt <- tabla_Status_Final %>%
gt() %>%
tab_header(
title = md("**Tabla N°2 de Distribución de Frecuencias del Estado Operativo de las Plantas Solares**")) %>%
tab_source_note(source_note = "Autor: Martin Sarmiento") %>%
cols_label(
Estado = "Estado Operativo",
ni = "Frecuencia (ni)",
`hi (%)` = "Porcentaje (hi%)") %>%
fmt_number(columns = c(`hi (%)`), decimals = 2) %>%
tab_options(
heading.title.font.size = px(16),
heading.subtitle.font.size = px(14),
column_labels.background.color = "#F0F0F0")
tabla_final_gt| Tabla N°2 de Distribución de Frecuencias del Estado Operativo de las Plantas Solares | ||
| Estado Operativo | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|
| Operativo | 1752 | 34.52 |
| Anunciado | 76 | 1.50 |
| Construcción | 111 | 2.19 |
| Pre-Construcción | 2795 | 55.07 |
| Inactivo (Mothballed) | 2 | 0.04 |
| Archivado (Shelved) | 30 | 0.59 |
| Archivado (Inferred 2y) | 76 | 1.50 |
| Cancelado | 209 | 4.12 |
| Cancelado (Inferred 4y) | 24 | 0.47 |
| TOTAL | 5075 | 100.00 |
| Autor: Martin Sarmiento | ||
# Diagrama de barrras local ni
par(mar = c(12, 4, 4, 2))
barplot(tabla_resumen$ni,
main="Gráfica N°1: Distribución de Cantidad de Plantas Solares por Estado Operativo",
cex.main = 1,
xlab = "",
ylab = "Cantidad",
col = "#D8BFD8",
names.arg=tabla_resumen$Estado,
cex.names = 0.6,
las = 2)
mtext("Estado Operativo", side = 1, line = 10)# Diagrama de barrras global ni
par(mar = c(12, 4, 4, 2))
barplot(tabla_resumen$ni,
main="Gráfica N°2: Distribución de Cantidad de Plantas Solares por Estado Operativo",
cex.main = 0.8,
xlab = "",
ylab = "Cantidad",
col ="#D8BFD8",
ylim = c(0,8000),
names.arg=tabla_resumen$Estado,
cex.names = 0.6,
las = 2)
mtext("Estado Operativo", side = 1, line = 10)# Diagrama de barrras local hi
par(mar = c(12, 4, 4, 2))
barplot(tabla_resumen$`hi (%)`,
main="Gráfica N°3: Distribución Porcentual de las Plantas Solares por Estado Operativo",
cex.main = 0.9,
xlab = "",
ylab = "Porcentaje %",
col = "#D8BFD8",
names.arg=tabla_resumen$Estado,
cex.names = 0.6,
las = 2)
mtext("Estado Operativo", side = 1, line = 10)# Diagrama de barrras global hi
par(mar = c(12, 4, 4, 2))
barplot(tabla_resumen$`hi (%)`,
main="Gráfica N°4: Distribución Porcentual de las Plantas Solares por Estado Operativo",
cex.main = 0.9,
xlab = "",
ylab = "Porcentaje %",
col = "#D8BFD8",
ylim = c(0,100),
names.arg=tabla_resumen$Estado,
cex.names = 0.6,
las = 2)
mtext("Estado Operativo", side = 1, line = 10)# Diagrma circular
par(mar = c(5, 6, 4, 10), xpd = TRUE)
tonos_base <- c("#4A148C", "#7B1FA2", "#AB47BC", "#CE93D8", "#F3E5F5")
paleta_violeta <- colorRampPalette(tonos_base)
colores_finales <- paleta_violeta(length(tabla_resumen$Estado))
pie (tabla_resumen$`hi (%)`,
main = "Gráfica N°5: Distribución Porcentual de las Plantas Solares por Estado Operativo",
cex.main = 0.9,
radius = 1,
labels = paste0(round(tabla_resumen$`hi (%)`,2),"%"),
col = colores_finales,
cex = 0.6,)
# Leyenda del diagrama circular
legend(x = 1.25, y = 1,
legend = tabla_resumen$Estado,
fill = colores_finales,
cex = 0.5,
title = "Estado Operativo",
bty = "n")# Cálculo de la Moda
moda_estado <- tabla_resumen$Estado[which.max(tabla_resumen$ni)]
# Tabla de Indicadores
tabla_indicadores <- data.frame(
"Variable" = "Estado Operativo",
"Rango" = "announced, pre-construction, construction, operating, mothballed, shelved, shelved–inferred 2y, cancelled, cancelled–inferred 4y",
"Media (X)" = "-",
"Mediana (Me)" = "-",
"Moda (Mo)" = moda_estado,
"Varianza (V)" = "-",
"Desv. Est. (Sd)" = "-",
"C.V. (%)" = "-",
"Asimetría (As)" = "-",
"Curtosis (K)" = "-",
check.names = FALSE)
# Generar Tabla de Indicadores
tabla_conclusiones_gt <- tabla_indicadores %>%
gt() %>%
tab_header(title = md("**Tabla N°3 de Conclusiones de Estado Operativo de las Plantas Solares**")) %>%
tab_source_note(source_note = "Autor: Martin Sarmiento") %>%
tab_options(column_labels.background.color = "#F0F0F0")
tabla_conclusiones_gt| Tabla N°3 de Conclusiones de Estado Operativo de las Plantas Solares | |||||||||
| Variable | Rango | Media (X) | Mediana (Me) | Moda (Mo) | Varianza (V) | Desv. Est. (Sd) | C.V. (%) | Asimetría (As) | Curtosis (K) |
|---|---|---|---|---|---|---|---|---|---|
| Estado Operativo | announced, pre-construction, construction, operating, mothballed, shelved, shelved–inferred 2y, cancelled, cancelled–inferred 4y | - | - | Pre-Construcción | - | - | - | - | - |
| Autor: Martin Sarmiento | |||||||||
La variable “Estado Operacional”, presenta como valor más frecuente es Pre-Construcción, con una participación destacada en la muestra.