Я пытаюсь использовать некоторые технические характеристики, но мне нужна помощь для подсчета некоторых категориальных функций по часам.
Я попробовал код ниже
Но, похоже, просто работаю для подсчета категориальной переменной за прошедший час, а мне она нужна за последние полчаса и последние 4 часа.
df <- data.frame(c("1","2","3","4","5","6"),c("Attribute1", "Attribute1", "Attribute1", "Attribute2", "Attribute2", "Attribute1"),
c("2018-11-01 00:00:19", "2018-11-01 00:00:54", "2018-11-01 00:01:17",
"2018-11-01 00:01:23", "2018-11-01 00:01:25","2018-11-01 00:00:55"))
names(df) <- c("ID","Signature", "date")
df$date <- as.POSIXct(df$date)
library(data.table)
dt <- setDT(df)
dt[, time_idx := paste0(year(date), "-", yday(date), "-", hour(date))]
dt[, Count_Signature := (1L:.N) - 1L, keyby = .(Signature, time_idx)]
dt
Результаты, которые я ожидаю, примерно такие:
ID Signature date time_idx Count_Signature
1 Attribute1 2018-11-01 00:00:19 2018-305-0 0
2 Attribute1 2018-11-01 00:00:54 2018-305-0 1
3 Attribute1 2018-11-01 00:01:17 2018-305-0 2
6 Attribute1 2018-11-01 00:00:55 2018-305-0 3
4 Attribute2 2018-11-01 00:01:23 2018-305-0 0
5 Attribute2 2018-11-01 00:01:25 2018-305-0 1
Это пример того, что мне нужно за прошедший час, но также мне нужно было и последние полчаса, и последние 4 часа.
Спасибо