Вот некоторые данные Примера:Подсчет числа событий В настоящее время проходящего Когда событие Происходит (RevoScaleR/mrsdeploy)
Begin = c("10-10-2010 12:15:35", "10-10-2010 12:20:52", "10-10-2010 12:23:45", "10-10-2010 12:25:01", "10-10-2010 12:30:29")
End = c("10-10-2010 12:24:23", "10-10-2010 12:23:30", "10-10-2010 12:45:15", "10-10-2010 12:32:11", "10-10-2010 12:45:05")
df = data.frame(Begin, End)
Я хочу, чтобы подсчитать количество событий, которые в настоящее время не завершены, когда новое событие начинается и записывается в новый столбец. Таким образом, для этого конкретного примера конечным результатом является желаемый столбец со значениями: 0, 1, 1, 1, 2
У меня есть решение, как это сделать с data.table, и оно отлично работает. Я хотел бы найти решение, которое работает в пакетах RevoScaleR/mrsdeploy, чтобы программа, которая делает это, могла использовать преимущества параллельных вычислений/разбиения данных.
Вот решение, которое работает в data.table:
library(lubridate)
library(data.table)
df <- as.data.frame(lapply(df, dmy_hms))
dt <- as.data.table(df)
setkey(dt,Begin,End)[,id:=.I]
merge(dt, foverlaps(dt,dt)[id>i.id,.N,by="Begin,End"], all.x=T)[,id:=NULL][is.na(N),N:=0][]
Опять же, я ищу ту, которая может быть выполнена удаленно на SQLSERVER2016 с пакетами упомянутых.
Я подсчитываю количество событий, которые еще не закончились, когда начинается другой. Это данные об отключении электроэнергии, так что это говорит о том, что «когда этот перерыв в электропитании начался, уже было х количество отключений электроэнергии, которые еще не были отремонтированы». – TravisLong