user<-as.factor(c(1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3))
date<-as.Date(c("2018-01-21", "2018-01-21", "2018-01-21","2018-01-21", "2018-01-24",
"2018-01-21","2018-01-21","2018-01-21", "2018-01-21","2018-01-21","2018-02-14",
"2018-01-22", "2018-05-13","2018-05-17","2018-05-17", "2018-05-17"))
hour<-as.factor(c("11:23", "11:25", "13:26", "13:44", "13:52", "09:17", "09:18", "09:22", "12:04", "12:06", "14:20", "17:30", "08:54", "12:24", "12:26", "13:05"))
df<-data.frame(user, date, hour)
str(df)
user date hour
1 1 2018-01-21 11:23
2 1 2018-01-21 11:25
3 1 2018-01-21 13:26
4 1 2018-01-21 13:44
5 1 2018-01-24 13:52
6 2 2018-01-21 09:17
7 2 2018-01-21 09:18
8 2 2018-01-21 09:22
9 2 2018-01-21 12:04
10 2 2018-01-21 12:06
11 2 2018-02-14 14:20
12 3 2018-01-22 17:30
13 3 2018-05-13 08:54
14 3 2018-05-17 12:24
15 3 2018-05-17 12:26
16 3 2018-05-17 13:05
Я долго искал, но, похоже, не могу найти ответ на свой вопрос. Здесь есть фрейм данных, похожий на этот. Я пытаюсь добавить новую колонку под названием «пробная версия», которая будет измерять каждую 60-минутную пробную версию для каждого участника в день. Это не проблема, когда в день проводится только одно испытание, но иногда их несколько. До сих пор я пытался использовать функцию cumsum из пакета data.table, но она не учитывает дату.
Я пытаюсь получить это в конце концов:
user date hour trial
1 1 2018-01-21 11:23 1
2 1 2018-01-21 11:25 1
3 1 2018-01-21 13:26 2
4 1 2018-01-21 13:44 2
5 1 2018-01-24 13:52 3
6 2 2018-01-21 09:17 1
7 2 2018-01-21 09:18 1
8 2 2018-01-21 09:22 1
9 2 2018-01-21 12:04 2
10 2 2018-01-21 12:06 2
11 2 2018-02-14 14:20 3
12 3 2018-01-22 17:30 1
13 3 2018-05-13 08:54 1
14 3 2018-05-17 12:24 1
15 3 2018-05-17 12:26 1
16 3 2018-05-17 13:05 1
Я не уверен, должен ли я использовать цикл или что-то еще. Для этого должно быть простое и элегантное решение, которого я не вижу. Спасибо!