una tipo separar ordenar obtener mes hora filtrar fechas fecha extraer año agrupar r date time-series raster

tipo - R: Cómo extraer fechas de una serie de tiempo



separar fechas en r (4)

El problema original dado en la pregunta es excepcionalmente difícil porque contiene un muestreo no estándar, es decir, 24 veces al año, y por lo tanto, tendría que utilizar formas no estándar para extraer las fechas que otros han cubierto adecuadamente. Para aquellos que se topan con esta pregunta que tienen series de tiempo más estándar, la solución es más simple.

x <- 1:(768/2) ## shorten the ts to reflect lower sampling rate myts <- ts(x, start = c(1982, 1), frequency = 12) ## now one sample per month dates <- as.Date(myts)

¿Cómo puedo extraer fechas de una serie de tiempo? Aquí hay una serie de tiempo:

x = seq (1, 768) myts <- ts(x, start=1982, frequency=24)

Originalmente necesitaba crear un vector con datos de fecha / hora para la función rts . Las observaciones comienzan en 1982 con 2 mediciones por mes hasta 2013.


En caso de que necesite objetos POSIX* , lo que probablemente no sea apropiado cuando trabaje con datos semestrales, pero puede ser útil cuando se trata de resoluciones temporales más altas, también puede usar date_decimal de lubridate .

library(lubridate) mts <- as.numeric(time(myts)) ## ''POSIXct, POSIXt'' object tms <- date_decimal(mts)


Puede utilizar la siguiente función. La entrada es una serie de tiempo en r. Y la salida es una lista que contiene toda la matriz de tiempo desde la hora de inicio hasta la hora de finalización.

Con la ayuda de la lista, puede usar la función de window() para truncar una serie de tiempo de manera muy conveniente.

getTStime <- function(ats){ start <- start(ats) end <- end(ats) time <- list() time[[1]] <- start m <- 2 while(!(identical(start, end))){ start[2] <- start[2] + 1 if (start[2]==13){ start[1] <- start[1] + 1 start[2] <- 1 } time[[m]] <- start m <- m + 1 } return(time) }


Tratar:

time(myts)

o quizás:

library(zoo) as.yearmon(time(myts))