Um incremento de uma hora em r, zoológico
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
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