Parte 0

Instalación previa del paquete

install.packages(
  "renpow",
  repos = c(
    "https://mfacevedol.r-universe.dev",
    "https://cloud.r-project.org"
  )
)
## package 'renpow' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\CESAR\AppData\Local\Temp\RtmpELSABk\downloaded_packages

Parte 1

Comprobación del entorno

# Cargar el paquete en cada sesión
library(renpow)
library(DT)
# Ver los conjuntos de datos disponibles

data(package = "renpow")
# Prueba rápida con cien valores hipotéticos
data("test100")
head(test100)
str(test100)
## 'data.frame':    100 obs. of  1 variable:
##  $ x: int  48 38 44 41 56 45 39 43 38 57 ...
summary(test100)
##        x        
##  Min.   :23.00  
##  1st Qu.:35.00  
##  Median :40.50  
##  Mean   :40.86  
##  3rd Qu.:46.00  
##  Max.   :74.00

para una mejor visualización del histograma de los 100 valores hipoteticos

# Extraer el vector de datos
datos <- test100[[1]]

# 1. Configurar los parámetros gráficos (orientación vertical de los números del eje Y)
par(las = 1)

# 2. Generar el histograma estilizado
hist(
  datos,
  main = "Gráfico N°1: Histograma de frecuencias absolutas de la prueba
  Prueba del entorno estadístico",
  xlab = "Valor",
  ylab = "Frecuencia absoluta (ni)",
  col = "lightgreen",          # Color verde claro para las barras
  border = "darkgreen",        # Borde verde oscuro
  breaks = 15,                  # Aumenta la cantidad de intervalos (mayor detalle)
  ylim = c(0, 25)              # Ajusta el límite superior del eje Y según tus datos
)

# 3. Agregar líneas guía horizontales discontinuas (grid)
grid(nx = NA, ny = NULL, col = "gray80", lty = "dashed", lwd = 1)

# 4. Volver a dibujar las barras sobre la cuadrícula para que no queden tapadas
hist(
  datos,
  col = "lightgreen",
  border = "darkgreen",
  breaks = 15,
  add = TRUE
)

Parte 2

Datos ambientales y ciclo de los datos

# Cargar el conjunto ambiental
data("GlobTempAnom")
datos_originales <- GlobTempAnom
# Reconocer la tabla
dim(datos_originales)
## [1] 137   3
names(datos_originales)
## [1] "Year"   "Avg"    "Avg5yr"
head(datos_originales)
tail(datos_originales)
str(datos_originales)
## 'data.frame':    137 obs. of  3 variables:
##  $ Year  : int  1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 ...
##  $ Avg   : num  -0.2 -0.12 -0.1 -0.21 -0.28 -0.32 -0.31 -0.33 -0.2 -0.12 ...
##  $ Avg5yr: num  -0.13 -0.16 -0.19 -0.21 -0.24 -0.26 -0.27 -0.27 -0.27 -0.26 ...
summary(datos_originales)
##       Year           Avg               Avg5yr        
##  Min.   :1880   Min.   :-0.47000   Min.   :-0.41000  
##  1st Qu.:1914   1st Qu.:-0.21000   1st Qu.:-0.23000  
##  Median :1948   Median :-0.07000   Median :-0.04000  
##  Mean   :1948   Mean   : 0.02438   Mean   : 0.02445  
##  3rd Qu.:1982   3rd Qu.: 0.19000   3rd Qu.: 0.21000  
##  Max.   :2016   Max.   : 0.99000   Max.   : 0.91000
# Crear nombres de trabajo independientes del encabezado original para asi poder identificarlos de mojor forma
anio <- datos_originales[[1]]
anomalia <- datos_originales[[2]]
promedio5 <- datos_originales[[3]]

Para que los datos se evidnecien de mejor manera se empleó un tabla super organizada

datatable(
  datos_originales,
  options = list(
    pageLength = 10,           # Muestra 10 filas por página
    scrollY = "350px",          # Activa la barra deslizante vertical
    scrollCollapse = TRUE,      # Ajusta el tamaño si hay menos datos
    paging = TRUE               # Mantiene la paginación activa
  ),
  colnames = c("Año", "Anomalía Anual (°C)", "Promedio 5 Años (°C)"),
  caption = "Tabla 1: Registros de anomalía de temperatura (1880–2016)",
  rownames = FALSE
)

Parte 3

Exportación e importación

# Confirmar dónde se guardará el archivo
getwd()
## [1] "C:/Users/CESAR/Downloads"
# Exportar una copia
write.csv(datos_originales, "GlobTempAnom.csv", row.names = FALSE)
file.exists("GlobTempAnom.csv")
## [1] TRUE
# Importar como un nuevo objeto
datos <- read.csv("GlobTempAnom.csv")
head(datos)
str(datos)
## 'data.frame':    137 obs. of  3 variables:
##  $ Year  : int  1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 ...
##  $ Avg   : num  -0.2 -0.12 -0.1 -0.21 -0.28 -0.32 -0.31 -0.33 -0.2 -0.12 ...
##  $ Avg5yr: num  -0.13 -0.16 -0.19 -0.21 -0.24 -0.26 -0.27 -0.27 -0.27 -0.26 ...
# Comprobar que las dimensiones se conservaron
dim(datos_originales)
## [1] 137   3
dim(datos)
## [1] 137   3

Parte 4

Exploración descriptiva

# Reconstruir los vectores desde el archivo importado
anio <- datos[[1]]
anomalia <- datos[[2]]
promedio5 <- datos[[3]]

# Resumen numérico
length(anomalia)
## [1] 137
sum(is.na(anomalia))
## [1] 0
mean(anomalia, na.rm = TRUE)
## [1] 0.02437956
median(anomalia, na.rm = TRUE)
## [1] -0.07
sd(anomalia, na.rm = TRUE)
## [1] 0.3269913
range(anomalia, na.rm = TRUE)
## [1] -0.47  0.99
quantile(anomalia, na.rm = TRUE)
##    0%   25%   50%   75%  100% 
## -0.47 -0.21 -0.07  0.19  0.99

Gráfica de puntos de disperción

# Gráfico temporal
plot(anio, anomalia, type = "p", pch = 16, col = "steelblue",
     xlab = "Año", ylab = "Anomalía de temperatura",
     main = "Gráfico 2.- Anomalía de temperatura superficial global")
lines(anio, promedio5, col = "firebrick", lwd = 2)
legend("topleft", c("Anual", "Promedio de 5 años"),
       col = c("steelblue", "firebrick"), pch = c(16, NA),
       lty = c(NA, 1), bty = "n")

Diagrama de caja y bigotes

# Distribución

boxplot(anomalia, ylab = "Anomalía de temperatura",
        main = "Gráfico 3.- Distribución de anomalías")

histograma

hist(anomalia, col = "lightblue", border = "white",
     xlab = "Anomalía de temperatura",
     main = "Gráfica 4.- Histograma de anomalías")