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

时间:2016-06-01 14:10:53

标签: r time-series xts zoo

我有两个与

持续时间相同的时间序列(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"))

情节是: enter image description here

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

对于R?

中的时间序列数据,是否有现成的方法?

1 个答案:

答案 0 :(得分:0)

你可能正在寻找rle函数,它计算相等值的运行长度。

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

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

any(lenghEnc$lengths>=6 & lenghEnc$values==1)
相关问题