检查时间序列 1 在特定的连续持续时间内是否大于时间序列 2

Check whether time-series 1 is greater than time-series 2 for a specific continuous duration

我有两个持续时间与

相同的时间序列(timeseries1timeseries2
    library(xts)
    set.seed <- 1024
    series <- seq(from= as.POSIXct(strptime("2015-01-01", format="%Y-%m-%d")),to = as.POSIXct(strptime("2015-01-02", format="%Y-%m-%d")), by= "10 mins") 
    timeseries1 <- xts(rnorm(length(series),50,2),series)
    timeseries2 <- xts(rnorm(length(series),51.5,1),series)
    plot(timeseries1,main="")
    lines(timeseries2,col="blue")
    legend("topleft", legend=c("Timeseries-1","Timeseries-2"),lty = 1, col=c("black","blue"))

重复是:

我需要确定 timeseries2 是否连续一小时大于 timeseries1。我知道,我可以从逐点比较开始,并保留一个计数器来检查 timeseries2 是否大于 timeseries1 n 间隔,但我认为必须有一些现有的新颖方法这个。

对于 R 中的时间序列数据,是否存在任何现有方法?

您可能正在寻找 rle 函数,它计算等值游程的长度。

对于您的情况,您可以检查 timeseries2 是否大于 timeseries1 连续一小时,如下所示:

comparison <- c(ifelse(coredata(timeseries2) > coredata(timeseries1),1,0))
lenghEnc <- rle(comparison)

any(lenghEnc$lengths>=6 & lenghEnc$values==1)