R Xts Align Time (не дата) - PullRequest
       5

R Xts Align Time (не дата)

0 голосов
/ 01 октября 2018

Я бы хотел сравнить 2 временных ряда по времени суток.Эти 2 серии относятся к разным датам (например, 2018-08-10 для первой серии и 2018-09-10 для второй серии), но имеют одинаковые отметки времени.Можно ли сделать cbind / слияние между двумя сериями, принимая только учетные отметки времени, но не дату отметки времени?

Спасибо

1 Ответ

0 голосов
/ 01 октября 2018

Я понятия не имею, как выглядят ваши данные, поэтому в следующий раз, пожалуйста, создайте воспроизводимый пример.Я создал 2 data.frames, которые могут служить примером.Теперь вам нужно, чтобы xts нуждался в действительном объекте временных рядов, а hms timeseries не является действительным временным рядом для xts.

При этом вы всегда можете преобразовать объект xts в data.frame с помощью:

my_df <- data.frame(times = index(my_xts), coredata(my_xts))

Теперь для примера:

Я показываю это через dplyr, но merge также будет работать, если вы создадите объект hms в каждом data.frame.Я использую as.hms из пакета hms, чтобы создать объект hms в data.frames и соединить их вместе.

x <- Sys.time() + 1:10*60 # today
y <- x - 60*60*24 # same time yesterday

df1 <- data.frame(times = x, val1 = 1:10)
df2 <- data.frame(times = y, val2 = 10:1)

library(dplyr)

# create hms object in df1 and in df2 on the fly
df1 %>% 
  mutate(times2 = hms::as.hms(times)) %>% 
  inner_join(df2 %>% mutate(times2 = hms::as.hms(times)), by = "times2"
             )

               times.x val1          times2             times.y val2
1  2018-10-01 18:26:05    1 18:26:05.421764 2018-09-30 18:26:05   10
2  2018-10-01 18:27:05    2 18:27:05.421764 2018-09-30 18:27:05    9
3  2018-10-01 18:28:05    3 18:28:05.421764 2018-09-30 18:28:05    8
4  2018-10-01 18:29:05    4 18:29:05.421764 2018-09-30 18:29:05    7
5  2018-10-01 18:30:05    5 18:30:05.421764 2018-09-30 18:30:05    6
6  2018-10-01 18:31:05    6 18:31:05.421764 2018-09-30 18:31:05    5
7  2018-10-01 18:32:05    7 18:32:05.421764 2018-09-30 18:32:05    4
8  2018-10-01 18:33:05    8 18:33:05.421764 2018-09-30 18:33:05    3
9  2018-10-01 18:34:05    9 18:34:05.421764 2018-09-30 18:34:05    2
10 2018-10-01 18:35:05   10 18:35:05.421764 2018-09-30 18:35:05    1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...