Как посчитать такую ​​же категориальную переменную из получаса, 1 часа и 4 часов в R? - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь использовать некоторые технические характеристики, но мне нужна помощь для подсчета некоторых категориальных функций по часам.

Я попробовал код ниже

Но, похоже, просто работаю для подсчета категориальной переменной за прошедший час, а мне она нужна за последние полчаса и последние 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 часа.

Спасибо

...