
# clean memory. 
rm(list = ls(all=T))

####################################################################
############################# MODIFICAR ############################
####################################################################


#Install and/or load the needed packages.
#pkg <- c('tidyverse','tibbletime','anomalize','timetk', "ggplot2", "anytime", "lubridate")
#install.packages(pkg)
library(tidyverse)
library(tibbletime)
library(timetk)
require(ggplot2)
library(anytime)
library(lubridate)
#set working directory -> Tener en cuenta que este directorio debe contener: una carpeta:
#1) una capeta de nombre "Datos" que contenga los archivos de sus datos a analizar (tipo de archivo: ".csv")
#2) una carpeta de nombre "Datos_resultados_PNG" que recibirá los resultados en formato .png
#3)Find file path for working directory and data... (para correr, seleccionar sólo la frase "file.choose()" y correr o eliminar el # y luego correr.)
#file.choose()
#Una vez creados estos directorios, reemplazar el camino en el comando setwd por el del directorio deseado
setwd("C:/Users/PAULA/Desktop/Datos doctorado/inercia")
#entre comillas poner el nombre del archivo de datos a analizar
my.data<-read.csv("./Estmeteo/est.csv")
my.date <- as.Date(my.data$Time, format="%d/%m/%Y %H:%M") #reemplazar la palabra que está después del signo $ por el nombre exacto de la columna que tiene la fecha.
## Importante: Si la fecha en el archivo no está en el formato YYYY-MM-DD, modificar las letras que se encuentran junto a los símbolos de % de acuerdo al formato en la que se encuentre la fecha de su archivo. Ver ejemplos y tabla de letras en el siguiente link: https://ampersandacademy.com/tutorials/r-programming/how-to-convert-string-to-date-in-r-programming-using-as-date-function


x = my.data$Temperature #reemplazar lo que está después del signo $ por el nombre exacto de la columna que quieren analizar (para la temperatura mínima, usar la columna VV2)

####################################################################
############################# NO TOCAR #############################
####################################################################
my.data1 <- data.frame(date=my.date, month=my.data$MONTH, x=x)

gra = ggplot(my.data1) + geom_line(aes(x=date, y=x))
gra

my.data1$x[which(my.data1$x == -99.9)] = NA #cambiar los datos "de relleno" por NA

#  Get years and months
my.data1$YM <- format(my.data1$date,format="%Y-%m")

mean_by <- my.data1 %>% 
  dplyr::group_by(month) %>% 
  dplyr::summarize(x = mean(na.omit(x)))

clean_data <- my.data %>%
  filter(!is.na(YEAR), !is.na(MONTH), !is.na(DAY), !is.na(Temperature))

#mínima y máxima diaria 
daily_stats <- my.data %>%
  filter(!is.na(Temperature)) %>%   # elimina filas sin datos
  group_by(YEAR, MONTH, DAY) %>%
  summarise(
    Tmin = min(Temperature, na.rm = TRUE),
    Tmax = max(Temperature, na.rm = TRUE),
    .groups = "drop"
  )
#mínima y máxima diaria mensual
monthly_stats <- daily_stats %>%
  group_by(YEAR, MONTH) %>%
  summarise(
    Tmin_month = mean(Tmin, na.rm = TRUE),
    Tmax_month = mean(Tmax, na.rm = TRUE),
    .groups = "drop"
  )

monthly_stats <- monthly_stats %>%
  mutate(YearMonth = sprintf("%04d-%02d", YEAR, MONTH)) %>%
  select(YearMonth, everything())  # poner la columna al inicio

#CSV
write.csv(monthly_stats, "./Estmeteo/monthly_min_max.csv", row.names = FALSE)



