Probar funciones de librería lubridate
library(lubridate)
library(dplyr)
Dato tipo fecha
hoy <- Sys.Date()
hoy
## [1] "2021-10-23"
Funciones con lubridate
ahora <- today() # Fecha de hoy yyyy-mm-dd
ahora
## [1] "2021-10-23"
hoyhoy <- now() # Fecha con hora
hoyhoy
## [1] "2021-10-23 11:51:02 CDT"
maniana.en.ocho <- today() + 8 # Agregando dias a la fecha de
maniana.en.ocho
## [1] "2021-10-31"
ymd("1969-11-06")
## [1] "1969-11-06"
mdy("1969-11-06") # No funciona
## Warning: All formats failed to parse. No formats found.
## [1] NA
ymd(19691106); ymd(20211023)
## [1] "1969-11-06"
## [1] "2021-10-23"
mdy(19691106) # No funciona
## Warning: All formats failed to parse. No formats found.
## [1] NA
ymd_hms("2017-01-31 20:11:59")
## [1] "2017-01-31 20:11:59 UTC"
mdy_hm("01/31/2017 08:01")
## [1] "2017-01-31 08:01:00 UTC"
ymd(20170131, tz = "America/Mexico_City")
## [1] "2017-01-31 CST"
mdy("enero 31, 2021")
## [1] "2021-01-31"
mdy("Octubre 23th, 2021")
## [1] "2021-10-23"
mdy("January 31st, 2017")
## [1] "2017-01-31"
mdy("Januar 31st, 2017") # Germany
## Warning: All formats failed to parse. No formats found.
## [1] NA
#> [1] "2017-01-31"
dmy("31-Jan-2017")
## [1] "2017-01-31"
#> [1] "2017-01-31"
dmy("23-Oct-2021")
## [1] "2021-10-23"
mdy(paste(month.abb, " 20, 2017")) # cualqueiri mes abreviado
## [1] "2017-01-20" "2017-02-20" "2017-03-20" "2017-04-20" "2017-05-20"
## [6] "2017-06-20" "2017-07-20" "2017-08-20" "2017-09-20" "2017-10-20"
## [11] "2017-11-20" "2017-12-20"
mifecha <- make_date(year = 1969, month = 11, day = 6)
mifecha
## [1] "1969-11-06"
mifecha
## [1] "1969-11-06"
paste(class(mifecha))
## [1] "Date"
print(typeof(mifecha))
## [1] "double"
mifecha
## [1] "1969-11-06"
year(x = today())
## [1] 2021
year(x = mifecha)
## [1] 1969
month(mifecha); class(month(mifecha))
## [1] 11
## [1] "numeric"
day(mifecha)
## [1] 6
quarter(mifecha)
## [1] 4
wday(mifecha) # dia de la semana
## [1] 5
weekdays(today()) # Pauete base
## [1] "sábado"
weekdays(mifecha) # Dia en que nací
## [1] "jueves"
Construyendo el data.frame datos
set.seed(2021)
agnio <- round(rnorm(n = 100, mean = 1975, sd = 5))
mes <- sample(x = 1:12, size = 100, replace = TRUE)
dia <- sample(x = 1:28, size = 100, replace = TRUE)
datos <- data.frame(agnio,mes,dia)
head(datos)
## agnio mes dia
## 1 1974 6 12
## 2 1978 5 4
## 3 1977 6 23
## 4 1977 5 6
## 5 1979 8 27
## 6 1965 12 6
summary(datos)
## agnio mes dia
## Min. :1964 Min. : 1.00 Min. : 1.00
## 1st Qu.:1970 1st Qu.: 5.00 1st Qu.: 7.00
## Median :1974 Median : 7.50 Median :14.50
## Mean :1974 Mean : 7.15 Mean :14.42
## 3rd Qu.:1977 3rd Qu.: 9.25 3rd Qu.:22.00
## Max. :1986 Max. :12.00 Max. :28.00
Construir una variable fecha
datos %>%
select(agnio, mes, dia) %>%
filter(agnio == 1969)
## agnio mes dia
## 1 1969 9 17
## 2 1969 1 23
## 3 1969 11 7
Agregar nueva variable
datos <- datos %>%
mutate(fecha = make_date(year=agnio, month = mes, day = dia)) %>%
head(10)
tail(datos)
## agnio mes dia fecha
## 5 1979 8 27 1979-08-27
## 6 1965 12 6 1965-12-06
## 7 1976 11 18 1976-11-18
## 8 1980 8 17 1980-08-17
## 9 1975 5 28 1975-05-28
## 10 1984 3 2 1984-03-02