options(repos = list(CRAN="http://cran.rstudio.com/"))
install.packages("dplyr")
## 
## The downloaded binary packages are in
##  /var/folders/0w/zhr00cs94db7pjb4_zldn_zw0000gn/T//Rtmpzys7wz/downloaded_packages
install.packages('riem')
## 
## The downloaded binary packages are in
##  /var/folders/0w/zhr00cs94db7pjb4_zldn_zw0000gn/T//Rtmpzys7wz/downloaded_packages
library(riem)
install.packages('tidyverse')
## 
## The downloaded binary packages are in
##  /var/folders/0w/zhr00cs94db7pjb4_zldn_zw0000gn/T//Rtmpzys7wz/downloaded_packages
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.0     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.1     ✔ tibble    3.1.8
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
install.packages('lubridate')
## 
## The downloaded binary packages are in
##  /var/folders/0w/zhr00cs94db7pjb4_zldn_zw0000gn/T//Rtmpzys7wz/downloaded_packages
library(lubridate)
install.packages('ggplot2')
## 
## The downloaded binary packages are in
##  /var/folders/0w/zhr00cs94db7pjb4_zldn_zw0000gn/T//Rtmpzys7wz/downloaded_packages
library(ggplot2)
install.packages('plotly')
## 
## The downloaded binary packages are in
##  /var/folders/0w/zhr00cs94db7pjb4_zldn_zw0000gn/T//Rtmpzys7wz/downloaded_packages
library(plotly)
## 
## Attaching package: 'plotly'
## 
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## 
## The following object is masked from 'package:stats':
## 
##     filter
## 
## The following object is masked from 'package:graphics':
## 
##     layout
# Paso 2 Buscar la red (país).
view(riem_networks())

# Paso 3 Buscar la estación (ciudad) y copiar ID
view(riem_stations('MX__ASOS'))

#Paso 4 Obtener informacion
monterrey<- riem_measures("MMMY")

# Paso 5 Agregar Temperatura en grados centigrados
monterrey$tmpc<- (monterrey$tmpf -32)/1.8
str(monterrey)
## tibble [82,440 × 33] (S3: tbl_df/tbl/data.frame)
##  $ station          : chr [1:82440] "MMMY" "MMMY" "MMMY" "MMMY" ...
##  $ valid            : POSIXct[1:82440], format: "2014-01-01 00:16:00" "2014-01-01 00:49:00" ...
##  $ lon              : num [1:82440] -100 -100 -100 -100 -100 ...
##  $ lat              : num [1:82440] 25.8 25.8 25.8 25.8 25.8 ...
##  $ tmpf             : num [1:82440] 48.2 48.2 48.2 46.4 46.4 46.4 46.4 46.4 46.4 46.4 ...
##  $ dwpf             : num [1:82440] 46.4 46.4 46.4 46.4 46.4 44.6 44.6 44.6 44.6 44.6 ...
##  $ relh             : num [1:82440] 93.5 93.5 93.5 100 100 ...
##  $ drct             : num [1:82440] 0 120 120 120 110 100 110 130 60 0 ...
##  $ sknt             : num [1:82440] 0 3 5 6 5 5 4 3 3 0 ...
##  $ p01i             : num [1:82440] 0 0 0 0 0 0 0 0 0 0 ...
##  $ alti             : num [1:82440] 30.3 30.3 30.3 30.3 30.3 ...
##  $ mslp             : num [1:82440] NA NA NA NA NA ...
##  $ vsby             : num [1:82440] 4 3 1 0.25 0.12 0.12 0.06 0.06 0.06 0.12 ...
##  $ gust             : num [1:82440] NA NA NA NA NA NA NA NA NA NA ...
##  $ skyc1            : chr [1:82440] "SCT" "SCT" "SCT" "VV " ...
##  $ skyc2            : chr [1:82440] "BKN" "BKN" "BKN" NA ...
##  $ skyc3            : chr [1:82440] "OVC" "OVC" "OVC" NA ...
##  $ skyc4            : chr [1:82440] NA NA NA NA ...
##  $ skyl1            : num [1:82440] 700 300 200 200 100 100 100 100 100 100 ...
##  $ skyl2            : num [1:82440] 1200 400 300 NA NA NA NA NA NA NA ...
##  $ skyl3            : num [1:82440] 4000 900 500 NA NA NA NA NA NA NA ...
##  $ skyl4            : num [1:82440] NA NA NA NA NA NA NA NA NA NA ...
##  $ wxcodes          : chr [1:82440] NA "BR" "BR" "FG" ...
##  $ ice_accretion_1hr: logi [1:82440] NA NA NA NA NA NA ...
##  $ ice_accretion_3hr: logi [1:82440] NA NA NA NA NA NA ...
##  $ ice_accretion_6hr: logi [1:82440] NA NA NA NA NA NA ...
##  $ peak_wind_gust   : logi [1:82440] NA NA NA NA NA NA ...
##  $ peak_wind_drct   : logi [1:82440] NA NA NA NA NA NA ...
##  $ peak_wind_time   : logi [1:82440] NA NA NA NA NA NA ...
##  $ feel             : num [1:82440] 48.2 47.2 45.6 42.9 43.5 ...
##  $ metar            : chr [1:82440] "MMMY 010016Z 00000KT 4SM SCT007 BKN012 OVC040 09/08 A3028 RMK 8/5// BR" "MMMY 010049Z 12003KT 3SM BR SCT003 BKN004 OVC009 09/08 A3028 RMK 8/5// -DZ OCNL" "MMMY 010116Z 12005KT 1SM BR SCT002 BKN003 OVC005 09/08 A3028 RMK 8/6// -DZ OCNL" "MMMY 010120Z 12006KT 1/4SM FG VV002 08/08 A3029 RMK 8//// BC FG MOV SE/NW" ...
##  $ snowdepth        : logi [1:82440] NA NA NA NA NA NA ...
##  $ tmpc             : num [1:82440] 9 9 9 8 8 8 8 8 8 8 ...
# Paso 6 Filtrar informacion - Ejemplo Enero a Marzo 2023
este_año <- subset(monterrey, valid >= as.POSIXct('2023-01-01 00:00') & valid <= as.POSIXct('2023-03-10 07:00'))

# Paso 7 Graficar temperatura en 2023
plot(este_año$valid,este_año$tmpc)

# Paso 8 Promediar información por día
este_año <- este_año %>%
  mutate(date=ymd_hms(valid), date = as.Date(date)) %>%
  group_by(date) %>%
  summarize_if(is.numeric, ~mean(.,na.rm = TRUE))

# Paso 9 Graficar la temperatura en 2023
plot(este_año$date,este_año$tmpc, type="l", main="Temperatura promedio en monterrey", xlab="Fecha", ylab="´Centigrados")