Pergunta

Como posso adicionar uma hora a todos os elementos do índice de uma série do zoológico?

eu tentei

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

Mas eu recebo a mensagem

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

obrigado

Meu índice é um objeto Chron com data e hora, mas eu tentei com exemplos mais simples e não consigo entender

Foi útil?

Solução

Isso é facilmente resolvido adicionando o tempo que você deseja de maneira numérica:

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

Os objetos cron são representados como números decimais, para que você possa usá -los para calcular. Um dia é 1, então uma hora é 1/24, um minuto 1/1440 e assim por diante. Você pode ver isso facilmente se usar os tempos de função. Isso fornece os tempos do objeto testado, por exemplo:

> 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

Outras dicas

Converter para POSIXct, adicione 60*60 (1h em s) e depois converta novamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top