semanas - sumar dias habiles a una fecha en excel
¿Cómo restar/agregar días de/a una fecha? (3)
Intento crear carpetas para almacenar datos extraídos. Quiero etiquetar las carpetas con el día de esos datos en la extracción.
Ex. Extraigo datos de hace 5 días de mysql. Quiero nombrar la carpeta con la fecha de hace 5 días.
MySQL puede manejar fácilmente la aritmética de fechas. No estoy seguro de cómo lo hace R exactamente. ¿Debo simplemente restar el número apropiado de segundos en POSIXct y luego convertir a POSIXlt para nombrar la carpeta MM_DD_YYYY?
¿O hay un mejor camino?
La respuesta probablemente dependa del formato en que se encuentre su fecha, pero aquí hay un ejemplo usando la clase Date
:
dt <- as.Date("2010/02/10")
new.dt <- dt - as.difftime(2, unit="days")
Incluso puedes jugar con diferentes unidades como semanas.
Por supuesto, hay una solución lubridate
para esto:
library(lubridate)
date <- "2009-10-01"
ymd(date) - 5
# [1] "2009-09-26"
es lo mismo que
ymd(date) - days(5)
# [1] "2009-09-26"
Otros formatos de tiempo podrían ser:
ymd(date) - months(5)
# [1] "2009-05-01"
ymd(date) - years(5)
# [1] "2004-10-01"
ymd(date) - years(1) - months(2) - days(3)
# [1] "2008-07-29"
Solo resta un número:
> as.Date("2009-10-01")
[1] "2009-10-01"
> as.Date("2009-10-01")-5
[1] "2009-09-26"
Como la clase Date
solo tiene días, puedes hacer aritmética básica en ella.
Si desea utilizar POSIXlt por alguna razón, puede usar sus ranuras:
> a <- as.POSIXlt("2009-10-04")
> names(unclass(as.POSIXlt("2009-10-04")))
[1] "sec" "min" "hour" "mday" "mon" "year" "wday" "yday" "isdst"
> a$mday <- a$mday - 6
> a
[1] "2009-09-28 EDT"