Я анализирую данные SCADA с помощью R.
Проблема, которую мне нужно решить, - это проанализировать канал SCADA и определить, как часто измерения превышали определенный предел более чем на 15 минут.
Единственный способ решить эту проблему - использовать цикл for, который сделает процесс очень медленным, потому что в реальном приложении будут тысячи точек.
Какие-либо предложения?
Простой пример:
set.seed(666)
upper_limit =1.5
sims <- 50
turb <- abs(rnorm(sims))
time <- seq.POSIXt(as.POSIXct(Sys.Date()-1), by=30, length.out=sims)
plot(time,turb, type="l")
abline(h=upper_limit, col="red", lwd=2)
См .: http://rpubs.com/pprevos/scada
Ответ для этого примера: 8 превышений, и мне также нужно знать продолжительность каждого из них.