Примечание: Я повторил предыдущий вопрос, как сказано в комментариях.Преобразование временных рядов данных из секунд в почасовое означает в R
Я использую три разных пакета, то есть dplyr, data.table и xts для агрегирования моих секундных данных в среднечасовое представление. Но, к моему удивлению, xts ведет себя по-другому по сравнению с другими двумя. Проблемы с XTS являются:
- Результатов в одно дополнительном наблюдении по сравнению с другими двумя
- среднечасовым рассчитывается полностью отличаются от двух других
Здесь есть сгущенный код для целей тестирования:
library(xts)
library(data.table)
library(dplyr)
t2 <- as.POSIXct(seq(from = 1438367408, to = 1440959383, by = 30), origin = "1970-01-01")
dframe <- data.frame(timestamp=t2, power=rnorm(length(t2)))
#using xts
x <- xts(dframe$power,dframe$timestamp)
h1 <- period.apply(x, endpoints(x, "hours"), mean)
h1 <- data.frame(timestamp=trunc(index(h1),'hours'), power=coredata(h1))
#using data.table
h2 <- setDT(dframe)[, list(power= mean(power)) ,(timestamp= as.POSIXct(cut(timestamp, 'hours')))]
#using dpylr
h3 <- dframe %>% group_by(timestamp= as.POSIXct(cut(timestamp, 'hour'))) %>% summarise(power=mean(power))
Выходы в отношении размера:
> dim(h1)
[1] 721 2
> dim(h2)
[1] 720 2
> dim(h3)
[1] 720 2
Мероприятие в отношении почасовых средств:
> head(h1)
timestamp power
1 2015-08-01 00:00:00 0.04485894
2 2015-08-01 01:00:00 -0.02299071
> head(h2) # equals to head(h2)
timestamp power
1: 2015-08-01 00:00:00 0.10057538
2: 2015-08-01 01:00:00 -0.07456292
Дополнительного наблюдения в случае h1:
> tail(h1)
timestamp power
719 2015-08-30 22:00:00 0.069544538
720 2015-08-30 23:00:00 0.011673835
721 2015-08-30 23:00:00 -0.053858563
Ясно в течение последнего часа дня есть два наблюдения. Обычно должно быть только одно.
Моя система информации:
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.3 (Yosemite)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] dplyr_0.4.3 data.table_1.9.7 xts_0.9-7 zoo_1.7-12
loaded via a namespace (and not attached):
[1] lazyeval_0.1.10 magrittr_1.5 R6_2.1.1 assertthat_0.1 parallel_3.2.2 DBI_0.3.1 tools_3.2.2
[8] Rcpp_0.12.1 grid_3.2.2 chron_2.3-47 lattice_0.20-33
Примечание:
- Оригинальный набор данных можно найти на link
- Я хочу, чтобы решение этой проблемы, потому что в моих XTS сценариев реализации почти 35 раз быстрее, чем остальные два
Просьба сделать это воспроизводимым. –
Я представил как код, так и набор данных. Что еще мне нужно, чтобы сделать его воспроизводимым –
Извините, но я не хочу нажимать на неизвестную ссылку. –