Escritura

setwd("/cloud/project")

Datos <- read.csv("DataSet_.csv", sep = ";", fileEncoding = "latin1")

install.packages("dplyr")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.5'
## (as 'lib' is unspecified)
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
install.packages("ggplot2")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.5'
## (as 'lib' is unspecified)
library(ggplot2)

Tabla Base

Status <- Datos$operational_status
TDF_status <- table(Status)

tabla_status <- as.data.frame(TDF_status)
hi <- tabla_status$Freq/sum(tabla_status$Freq)
hi_porc <- hi*100

tabla_STATUS <- data.frame(tabla_status, hi_porc)

colnames(tabla_STATUS)[1] <- "Status"

Agrupación

tabla_resumen <- tabla_STATUS %>%
  mutate(grupo = case_when(
    grepl("operating", Status, ignore.case = TRUE) ~ "Operativo",
    grepl("announced", Status, ignore.case = TRUE) ~ "Anunciado",
    grepl("pre-construction|construction", Status, ignore.case = TRUE) ~ "Construcción / Pre-Construcción",
    grepl("shelved", Status, ignore.case = TRUE) ~ "Archivado (Shelved)",
    grepl("cancelled", Status, ignore.case = TRUE) ~ "Cancelado",
    grepl("mothballed", Status, ignore.case = TRUE) ~ "Inactivo (Mothballed)",
    TRUE ~ "Sin especificar / Otros"
  )) %>%
  group_by(grupo) %>%
  summarise(
    Frecuencia = sum(Freq),
    Porcentaje = sum(hi_porc)
  ) %>%
  arrange(desc(Frecuencia))

colnames(tabla_resumen) <- c("Estado","ni","hi (%)")
tabla_resumen
## # A tibble: 7 × 3
##   Estado                             ni `hi (%)`
##   <chr>                           <int>    <dbl>
## 1 Construcción / Pre-Construcción  3573  50.0   
## 2 Operativo                        3035  42.5   
## 3 Cancelado                         296   4.14  
## 4 Archivado (Shelved)               142   1.99  
## 5 Anunciado                          93   1.30  
## 6 Inactivo (Mothballed)               2   0.0280
## 7 Sin especificar / Otros             1   0.0140

Totales

totales <- c(
  Estado = "TOTAL",
  ni = sum(tabla_resumen$ni),
  hi = sum(tabla_resumen$`hi (%)`)
)

tabla_Status_Final <- rbind(tabla_resumen, totales)
tabla_Status_Final
## # A tibble: 8 × 3
##   Estado                          ni    `hi (%)`          
##   <chr>                           <chr> <chr>             
## 1 Construcción / Pre-Construcción 3573  50.0280033604032  
## 2 Operativo                       3035  42.4950994119294  
## 3 Cancelado                       296   4.14449733968076  
## 4 Archivado (Shelved)             142   1.98823858863064  
## 5 Anunciado                       93    1.30215625875105  
## 6 Inactivo (Mothballed)           2     0.0280033604032484
## 7 Sin especificar / Otros         1     0.0140016802016242
## 8 TOTAL                           7142  100

GRÁFICOS

Gráfico 1 – Frecuencia local

par(mar = c(10, 4, 4, 2))
barplot(tabla_resumen$ni,main="Gráfica N°1: Distribución del estado operativo de plantas solares",
        ylab = "Cantidad",
        col = "skyblue",
        names.arg=tabla_resumen$Estado,
        cex.names = 0.7, las = 2)
mtext("Estado Operativo", side = 1, line = 9)

Gráfico 2 – Frecuencia global

barplot(tabla_resumen$ni,main="Gráfica N°2: Distribución del estado operativo (Global)",
        ylab = "Cantidad",
        col = "skyblue",
        ylim = c(0,8000),
        names.arg=tabla_resumen$Estado,
        cex.names = 0.7, las = 2)
mtext("Estado Operativo", side = 1, line = 9)

Gráfico 3 – Porcentaje local

barplot(tabla_resumen$`hi (%)`,main="Gráfica N°3: Distribución porcentual del estado operativo",
        ylab = "Porcentaje %",
        col = "skyblue",
        names.arg=tabla_resumen$Estado,
        cex.names = 0.7, las = 2)
mtext("Estado Operativo", side = 1, line = 9)

Gráfico 4 – Porcentaje global

barplot(tabla_resumen$`hi (%)`,main="Gráfica N°4: Distribución porcentual global",
        ylab = "Porcentaje %",
        col = "skyblue",
        ylim = c(0,100),
        names.arg=tabla_resumen$Estado,
        cex.names = 0.7, las = 2)
mtext("Estado Operativo", side = 1, line = 9)

Gráfico 5 – Diagrama Circular

pie(tabla_resumen$`hi (%)`,
    main = "Gráfica N°5: Distribución porcentual del estado operativo",
    radius = 0.8,
    labels = paste0(round(tabla_resumen$`hi (%)`,2),"%"),
    col = colores <- c(rev(heat.colors(length(tabla_resumen$Estado)))),
    cex = 0.6)

legend(x = 0.9, y = 1,
       legend = tabla_resumen$Estado,
       fill = colores,
       cex = 0.5,
       title = "Estado Operativo")

par(xpd = TRUE)

Tabla de Conlusiones

install.packages("knitr")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.5'
## (as 'lib' is unspecified)
library(knitr)

tabla_indicadores <- data.frame(
  "Variable" = "Estado Operativo",
  "Rango" = "Categorías de Estado",
  "X" = "-",
  "Me" = "-",
  "Mo" = "Anunciado / Operativo",
  "V" = "-",
  "Sd" = "-",
  "Cv" = "-",
  "As" = "-",
  "K" = "-",
  "Valores Atipicos" = "-"
)

kable(tabla_indicadores, align = 'c', caption = "Conclusiones de la variable estado operativo")
Conclusiones de la variable estado operativo
Variable Rango X Me Mo V Sd Cv As K Valores.Atipicos
Estado Operativo Categorías de Estado - - Anunciado / Operativo - - - - - -