una sumar semanas restar persona online meses manualmente habiles fechas fecha entre edad dias como calcular años r date r-faq

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"