我有两个与
持续时间相同的时间序列(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?
中的时间序列数据,是否有现成的方法?答案 0 :(得分:0)
你可能正在寻找rle函数,它计算相等值的运行长度。
在您的情况下,您可以检查timeseries2是否大于timeseries1连续持续一小时,如下所示:
comparison <- c(ifelse(coredata(timeseries2) > coredata(timeseries1),1,0))
lenghEnc <- rle(comparison)
any(lenghEnc$lengths>=6 & lenghEnc$values==1)