Один час приращения R, зоопарк - PullRequest
2 голосов
/ 31 августа 2010

Как я могу добавить один час ко всем элементам индекса серии зоопарка?

Я пробовал

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

но я получаю сообщение

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

спасибо

Мой индекс - это объект chron с датой и временем, но я пробовал на более простых примерах и не могу его получить

Ответы [ 2 ]

3 голосов
/ 31 августа 2010

Это легко решается добавлением нужного вам времени в числовом виде:

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

Хронические объекты представлены в виде десятичных чисел, так что вы можете использовать это для расчета.День равен 1, поэтому час равен 1/24, минута 1/1440 и так далее.Это легко увидеть, если вы используете функцию раз.Это дает вам время тестируемого объекта, например:

> 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
0 голосов
/ 31 августа 2010

Преобразовать в POSIXct, добавить 60 * 60 (1 ч в с), а затем преобразовать обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...