如何识别R中时间序列数据的最大波动?

时间:2013-02-26 05:52:51

标签: r

我有特定时间段的时间序列数据。例如:

Time                           Volume
2012-10-01 10:30:01             4567
2012-10-01 10:30:02             1235
2012-10-01 10:30:03             3645
..........   .....              .....



2012-10-01 10:30:49              4646894

我想确定给定时间序列数据的最大波动位于:2012-10-01 10:30:49。任何人都可以帮助我。

1 个答案:

答案 0 :(得分:3)

我将“最大波动”解释为意味着变化。如果这不正确,请告诉我。 以下是一些不同的optinos。 tsDat将是您data.frame

的名称
# Greatest increase in volume
diffs <- c(0, diff(tsDat$Volume))
tsDat[diffs == max(diffs), ]

# Greatest absolute increase in volume
diffs <- c(0, abs(diff(tsDat$Volume)))
tsDat[diffs == max(diffs), ]

# Greatest volumne
tsDat[tsDat$Volume==max(tsDat$Volume), ]

使用data.table:

library(data.table)
myDT <- data.table(tsDat, key="Volume")

myDT[.(max(Volume)), Time]