Objective:
Group sections of data together if the Subject, Re, and Length columns have identical consecutive values, and if Folder is == "out" | "drafts", Message == "", and Edit is == "T" and take their duration.
Subject Re Length Folder Message Date Edit
a@mail.com,b@mail.com 80 out 1/2/2020 1:00:01 AM T
a@mail.com,b@mail.com 80 out 1/2/2020 1:00:05 AM T
hey a@mail.com,b@mail.com 80 out 1/2/2020 1:00:10 AM T
hey a@mail.com,b@mail.com 80 out 1/2/2020 1:00:15 AM T
hey a@mail.com,b@mail.com 80 out 1/2/2020 1:00:30 AM T
hey a@mail.com,b@mail.com 80 draft 1/2/2020 1:02:00 AM T
hey a@mail.com,b@mail.com 80 draft 1/2/2020 1:02:05 AM T
hey a@mail.com,b@mail.com 80 out 1/2/2020 1:03:10 AM T
hey a@mail.com,b@mail.com 80 out 1/2/2020 1:03:20 AM T
Desired Output
Start End Duration Group
1/2/2020 1:00:10 AM 1/2/2020 1:00:30 AM 20 A
1/2/2020 1:02:00 AM 1/2/2020 1:02:05 AM 5 A
1/2/2020 1:03:10 AM 1/2/2020 1:03:20 AM 10 A
dput:
structure(list(Subject = structure(c(1L, 1L, 2L, 2L, 2L, 1L,
1L, 2L, 2L, 1L, 1L, 2L, 2L), .Label = c("", "hey"), class = "factor"),
Recipient = structure(c(1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L,
1L, 1L, 2L, 2L), .Label = c("", "sarah@mail.com,gee@mail.com"
), class = "factor"), Length = c(80L, 80L, 80L, 80L, 80L,
NA, NA, 80L, 80L, NA, NA, 100L, 100L), Folder = structure(c(3L,
3L, 3L, 3L, 3L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L), .Label = c("",
"draft", "out"), class = "factor"), Message = c(NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Date = structure(c(2L,
3L, 4L, 5L, 6L, 1L, 1L, 7L, 8L, 1L, 1L, 9L, 10L), .Label = c("",
"1/2/2020 1:00:01 AM", "1/2/2020 1:00:05 AM", "1/2/2020 1:00:10 AM",
"1/2/2020 1:00:15 AM", "1/2/2020 1:00:30 AM", "1/2/2020 1:02:00 AM",
"1/2/2020 1:02:05 AM", "1/2/2020 1:03:00 AM", "1/2/2020 1:03:20 AM"
), class = "factor"), Edit = c(TRUE, TRUE, TRUE, TRUE, TRUE,
NA, NA, TRUE, TRUE, NA, NA, TRUE, TRUE)), class = "data.frame", row.names = c(NA,
-13L))
I know that I can filter like this:
df1<-df2 %>%
mutate(Date = lubridate::mdy_hms(Date),
cond = Edit == "T" & ItemFolderName == "out" | Folder == "drafts" & Message == "" & Subject == ? & Re == ? & Length == ?
But unsure of how to incorporate "if there are consecutive values". I will continue to research, any help or suggestion is greatly appreciated.