检查时间序列 1 在特定的连续持续时间内是否大于时间序列 2
Check whether time-series 1 is greater than time-series 2 for a specific continuous duration
我有两个持续时间与
相同的时间序列(timeseries1
、timeseries2
)
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)
我有两个持续时间与
相同的时间序列(timeseries1
、timeseries2
)
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)