Escritura

##### UNIVERSIDAD CENTRAL DEL ECUADOR #####
#### AUTOR: MARTIN SARMIENTO ####
### CARRERA: INGENIERÍA EN PETRÓLEOS #####


#### VARIABLE ASPECT ####
## DATASET ##
setwd("/cloud/project")
# Cargar dataset
Datos <- read.csv("DataSet_.csv", sep = ";", fileEncoding = "latin1")
# Estructura de los datos
str(Datos)
## 'data.frame':    7142 obs. of  26 variables:
##  $ fid                  : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ objectid             : int  127 128 129 130 131 132 133 134 135 136 ...
##  $ code                 : chr  "Arg-00001" "Arg-00002" "Arg-00003" "Arg-00004" ...
##  $ country              : chr  "Argentina" "Argentina" "Argentina" "Argentina" ...
##  $ plant_name           : chr  "Aconcagua solar farm" "Aconcagua solar farm" "Altiplano 200 Solar Power Plant" "Altiplano 200 Solar Power Plant" ...
##  $ operational_status   : chr  "announced" "announced" "operating" "operating" ...
##  $ longitude            : num  -68.9 -68.9 -66.9 -66.9 -68.9 ...
##  $ latitude             : num  -33 -33 -24.1 -24.1 -33.3 ...
##  $ elevation            : int  929 929 4000 4000 937 865 858 858 858 858 ...
##  $ area                 : num  0 0 4397290 5774 0 ...
##  $ slope                : num  0.574 0.574 1.603 6.243 0.903 ...
##  $ slope_type           : chr  "Plano o casi plano" "Plano o casi plano" "Plano o casi plano" "Moderado" ...
##  $ curvature            : num  0.000795 0.000795 -0.002781 -0.043699 0.002781 ...
##  $ curvature_type       : chr  "Superficies planas o intermedias" "Superficies planas o intermedias" "Superficies planas o intermedias" "Superficies cóncavas / Valles" ...
##  $ aspect               : num  55.1 55.1 188.7 270.9 108.4 ...
##  $ aspect_type          : chr  "Northeast" "Northeast" "South" "West" ...
##  $ ghi                  : num  6.11 6.11 8.01 7.88 6.12 ...
##  $ solar_aptitude       : num  0.746 0.746 0.8 0.727 0.595 ...
##  $ solar_aptittude_class: chr  "Alta" "Alta" "Alta" "Alta" ...
##  $ humidity             : num  0 0 53.7 53.7 0 ...
##  $ wind_speed           : num  3.78 3.78 7.02 8.33 3.87 ...
##  $ wind_direction       : num  0 0 55.1 55.1 0 ...
##  $ ambient_temperature  : num  12.6 12.6 6.8 6.8 13.1 ...
##  $ optimal_tilt         : int  31 31 26 26 31 33 30 30 30 30 ...
##  $ peak_power_per_hour  : num  4.98 4.98 6.39 6.39 4.97 ...
##  $ total_power          : num  25 66.2 101 107 180 ...
# Instalamos paquetes de las librerias
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(gt)

Tabla Base

# Extraer y crear tabla base
Aspect <- Datos$aspect_type
# EDAvariable nominal
TDF_aspect <- table(Aspect)

tabla_aspect <- as.data.frame(TDF_aspect)
hi <- tabla_aspect$Freq/sum(tabla_aspect$Freq)
hi_porc <- hi*100
sum(hi_porc)
## [1] 100
tabla_ASPECT <- data.frame(tabla_aspect, hi_porc)

# Renombramos la primera columna a "Orientacion"
colnames(tabla_ASPECT)[1] <- "Orientacion"

Agrupación

### Agrupación ####
tabla_resumen <- tabla_ASPECT %>%
  mutate(grupo = case_when(
    grepl("Northeast", Orientacion, ignore.case = TRUE) ~ "Noreste (NE)",
    grepl("Northwest", Orientacion, ignore.case = TRUE) ~ "Noroeste (NW)",
    grepl("Southeast", Orientacion, ignore.case = TRUE) ~ "Sureste (SE)",
    grepl("Southwest", Orientacion, ignore.case = TRUE) ~ "Suroeste (SW)",
    grepl("North", Orientacion, ignore.case = TRUE) ~ "Norte (N)",
    grepl("South", Orientacion, ignore.case = TRUE) ~ "Sur (S)",
    grepl("East", Orientacion, ignore.case = TRUE) ~ "Este (E)",
    grepl("West", Orientacion, ignore.case = TRUE) ~ "Oeste (W)",
    grepl("Flat", Orientacion, ignore.case = TRUE) ~ "Plano (Flat)",
    TRUE ~ "No Asignado/Otros"
  )) %>%
  group_by(grupo) %>% 
  summarise(
    Frecuencia = sum(Freq),
    Porcentaje = sum(hi_porc)
  ) %>%
  arrange(desc(Frecuencia))

# Renombramos la primera columna a "Orientacion"
colnames(tabla_resumen) <- c("Orientacion","ni","hi (%)")


tabla_resumen_gt <- tabla_resumen %>%
  gt() %>%
  tab_header(
    title = md("**TABLA DE AGRUPACIÓN**"), 
    subtitle = "Frecuencias por Orientación (Sin Totales)"
  ) %>%
  tab_source_note(
    source_note = "Autor: Martin Sarmiento"
  ) %>%
  cols_label(
    Orientacion = "Orientación",
    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 DE AGRUPACIÓN
Frecuencias por Orientación (Sin Totales)
Orientación Frecuencia (ni) Porcentaje (hi%)
Noroeste (NW) 1022 14.31
Oeste (W) 1018 14.25
Norte (N) 981 13.74
Sureste (SE) 915 12.81
Noreste (NE) 865 12.11
Este (E) 847 11.86
Sur (S) 774 10.84
Suroeste (SW) 697 9.76
Plano (Flat) 21 0.29
No Asignado/Otros 2 0.03
Autor: Martin Sarmiento

Totales

#### Crear fila de totales ####
totales <- c("TOTAL", sum(tabla_resumen$ni), sum(tabla_resumen$`hi (%)`))
tabla_Aspect_Final <- rbind(tabla_resumen, totales)

tabla_Aspect_Final$ni <- as.numeric(tabla_Aspect_Final$ni)
tabla_Aspect_Final$`hi (%)` <- as.numeric(tabla_Aspect_Final$`hi (%)`)

# TABLA 1
tabla_gt <- tabla_Aspect_Final %>%
  gt() %>%
  tab_header(
    title = md("**TABLA 1**"), 
    subtitle = "Distribución de la Orientación del Terreno"
  ) %>%
  tab_source_note(
    source_note = "Autor: Martin Sarmiento"
  ) %>%
  cols_label(
    Orientacion = "Orientación",
    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_gt
TABLA 1
Distribución de la Orientación del Terreno
Orientación Frecuencia (ni) Porcentaje (hi%)
Noroeste (NW) 1022 14.31
Oeste (W) 1018 14.25
Norte (N) 981 13.74
Sureste (SE) 915 12.81
Noreste (NE) 865 12.11
Este (E) 847 11.86
Sur (S) 774 10.84
Suroeste (SW) 697 9.76
Plano (Flat) 21 0.29
No Asignado/Otros 2 0.03
TOTAL 7142 100.00
Autor: Martin Sarmiento

GRÁFICOS

Gráfico 1 – Frecuencia local

# Diagrama de barrras local ni
par(mar = c(10, 4, 4, 2)) 
barplot(tabla_resumen$ni,main="Gráfica N°1: Distribución de la orientación del terreno",
        xlab = "",
        ylab = "Cantidad",
        col = "#EEE685",
        names.arg=tabla_resumen$Orientacion,
        cex.names = 0.7,
        las = 2)
mtext("Orientación", side = 1, line = 9)

Gráfico 2 – Frecuencia global

# Diagrama de barrras global ni
par(mar = c(10, 4, 4, 2)) 
barplot(tabla_resumen$ni,main="Gráfica N°2: Distribución de la orientación (Global)",
        xlab = "",
        ylab = "Cantidad",
        col = "#EEE685",
        ylim = c(0,8000), 
        names.arg=tabla_resumen$Orientacion,
        cex.names = 0.7,
        las = 2)
mtext("Orientación", side = 1, line = 10)

Gráfico 3 – Porcentaje local

# Diagrama de barrras local hi
par(mar = c(10, 4, 4, 2)) 
barplot(tabla_resumen$`hi (%)`,main="Gráfica N°3: Distribución porcentual de la orientación",
        xlab = "",
        ylab = "Porcentaje %",
        col = "#EEE685",
        names.arg=tabla_resumen$Orientacion,
        cex.names = 0.7,
        las = 2)
mtext("Orientación", side = 1, line = 10)

Gráfico 4 – Porcentaje global

# Diagrama de barrras global hi
par(mar = c(10, 4, 4, 2)) 
barplot(tabla_resumen$`hi (%)`,main="Gráfica N°4: Distribución porcentual global",
        xlab = "",
        ylab = "Porcentaje %",
        col = "#EEE685",
        ylim = c(0,100),
        names.arg=tabla_resumen$Orientacion,
        cex.names = 0.7,
        las = 2)
mtext("Orientación", side = 1, line = 10)

Gráfico 5 – Diagrama Circular

paleta_tierra <- colorRampPalette(c("#FFFACD", "#EEE685", "#8B864E"))
colores_aspect <- paleta_tierra(length(tabla_resumen$Orientacion))
# Diagrama circular
pie(tabla_resumen$`hi (%)`, 
    main = "Gráfica N°5: Distribución porcentual de la orientación",
    radius = 0.9,
    labels = paste0(round(tabla_resumen$`hi (%)`, 2), "%"),
    col = colores_aspect, 
    cex = 0.8,            
    border = "black"     
)
par(xpd = TRUE)

# Leyenda del diagrama circular
legend(x = 1.3, y = 1,
       legend = tabla_resumen$Orientacion,
       fill = colores_aspect, 
       cex = 0.7,            
       bty = "n",            
       title = "Orientación")

Tabla de Conlusiones

# Tabla de conclusiones
tabla_indicadores <- data.frame(
  "Variable" = "Orientación (Aspect)",
  "Rango" = "Puntos Cardinales",
  "X" = "-", "Me" = "-", "Mo" = "Norte (N)", 
  "V" = "-", "Sd" = "-", "Cv" = "-", "As" = "-", "K" = "-", 
  "Valores_Atipicos" = "-"
)

# Generar Tabla de Conclusiones Profesional
tabla_conclusiones_gt <- tabla_indicadores %>%
  gt() %>%
  tab_header(
    title = md("**CONCLUSIONES**"),
    subtitle = "Análisis de la variable Orientación"
  ) %>%
  tab_source_note(
    source_note = "Autor: Martin Sarmiento"
  ) %>%
  cols_label(
    Valores_Atipicos = "Valores Atípicos"
  ) %>%
  tab_options(column_labels.background.color = "#f0f0f0")

tabla_conclusiones_gt
CONCLUSIONES
Análisis de la variable Orientación
Variable Rango X Me Mo V Sd Cv As K Valores Atípicos
Orientación (Aspect) Puntos Cardinales - - Norte (N) - - - - - -
Autor: Martin Sarmiento