【问题标题】:How to aggregate data on milliseconds without dropping empty time intervals?如何在不丢弃空时间间隔的情况下以毫秒为单位聚合数据?
【发布时间】:2016-03-23 09:38:13
【问题描述】:

我正在处理时间序列股票市场数据,并且需要以毫秒为单位汇总数据。我已经想出了如何做到这一点,但它不能按照我想要的方式使用 previoustick() 或 last()。

cuts = seq.POSIXt(from = min(A$DateTime), to = max(A$DateTime), by = by)
my_df = data.frame(DateTime=A$DateTime, MQ=A$MQ)
my_df$Time = cut(my_df$DateTime, breaks = cuts)
avgvwap = ddply(my_df, .(Time), summarize, MQ=mean(MQ), .drop = FALSE)

length(cuts)
[1] 227252
nrow(avgvwap)
[1] 227252

这正是我想要的,就像aggregatets() 函数一样,除了在我使用previoustick()last() 作为函数而不是mean()sum() 的情况下。

.drop = FALSE 基本上保留了没有可用数据的时间范围。它只是在空的时间范围内给了我一个 NA 或 NAN。这可以完美地处理平均值或总和,但不会为 last()previoustick() 保留它,即使我设置了 '.drop = FALSE'

avgvwap = ddply(my_df, .(Time), summarize, MQ=previoustick(MQ), .drop = FALSE)    
nrow(avgvwap)
[1] 98890

如您所见,行数减少了,因为它抛出了空的时间范围。如果我使用last() 而不是previoustick(),它会做同样的事情

如何在不丢弃空时间框架的情况下获得上一个或最后一个工作? 这个函数会不会完全处理不了?

我应该使用其他函数来代替 last 或 previoustick 吗?是总结问题吗?还是我不应该使用ddply

【问题讨论】:

  • 请提供一个可复制的示例,准备好复制粘贴运行,包含包、虚拟数据和您的代码。
  • dput(A[50,]) structure(list(DateTime = structure(1448855100.421, class = c("POSIXct", "POSIXt"), tzone = "Asia/Kolkata"), BWAP = 80901.875, AWAP = 82814.2857142857, MQ = 81858.0803571429), .Names = c("DateTime", "BWAP", "AWAP", "MQ"), row.names = 50L, class = "data.frame")
  • @lukeA 我使用的包是highfrequencyxtszooplyr

标签: r aggregate dplyr plyr


【解决方案1】:

我认为你可以这样聚合:

time <- Sys.time()
indices <- seq(time, time+1, by = 0.1)
values <- 1:length(indices)
breaks <- cut(as.numeric(indices), c(-Inf, seq(time, time+1, by = 0.2), Inf))
aggregate(values, list(breaks), sum)
#                      Group.1  x
# 1         (-Inf,1458732573.1]  1
# 2 (1458732573.1,1458732573.3]  5
# 3 (1458732573.3,1458732573.5]  9
# 4 (1458732573.5,1458732573.7] 13
# 5 (1458732573.7,1458732573.9] 17
# 6 (1458732573.9,1458732574.1] 21

【讨论】:

    猜你喜欢
    • 2013-05-26
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多