Pregunta

¿Cómo puedo añadir una hora a todos los elementos del índice de una serie zoológico?

He intentado

newseries <- myzooseries 
index(newseries) <- index(myzooseries)+times("1:00:00") 

pero me sale el mensaje

Incompatible methods   ("Ops.dates", "Ops.times") for "+" 

gracias

Mi índice es un objeto de Chron con fecha y hora, pero lo he intentado con ejemplos sencillos y no puedo conseguirlo

¿Fue útil?

Solución

Esto se soluciona fácilmente añadiendo el tiempo que desee de forma numérica:

newseries <- myzooseries 
index(newseries) <- index(myzooseries) + 1/24

objetos Chron se representan como números decimales, por lo que puede usarlo para calcular. Un día es 1, por lo que una hora es 1/24, un minuto 1/1440 y así sucesivamente. Esto se puede ver fácilmente si utiliza los tiempos de función. Esto le da los tiempos del objeto probado, por ejemplo:

> A <- chron(c("01/01/97","01/02/97","01/03/97"))

> B <- A + 1/24

> B
[1] (01/01/97 01:00:00) (01/02/97 01:00:00) (01/03/97 01:00:00)

> times(A)
Time in days:
[1] 9862 9863 9864

> times(B)
Time in days:
[1] 9862.042 9863.042 9864.042


> times(B-A)
[1] 01:00:00 01:00:00 01:00:00

> times(A[3]-B[1])
Time in days:
[1] 1.958333

Otros consejos

Convertir a POSIXct, añadir 60 * 60 (1h en s) y luego convertir de nuevo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top