У меня есть набор данных, df,
Subject Folder Message Date
A Out 9/9/2019 5:46:38 PM
A Out 9/9/2019 5:46:40 PM
A Out 9/9/2019 5:46:42 PM
B Out 9/9/2019 5:48:00 PM
B Out 9/9/2019 5:48:01 PM
C Out 9/10/2019 5:49:01 PM
Как сгруппировать это по теме, а затем найти продолжительность при создании нового столбца Длительность. Это мой желаемый вывод:
Subject Duration Group
A 4 sec outdata1
B 1 sec outdata2
C 0 sec outdata3
Вот мой dput:
structure(list(Subject = structure(c(1L, 1L, 1L, 2L, 2L, 3L), .Label = c("A",
"B", "C"), class = "factor"), Folder = structure(c(1L, 1L, 1L,
1L, 1L, 1L), .Label = "Out", class = "factor"), Message = c("",
"", "", "", "", ""), Date = structure(c(2L, 3L, 4L, 5L, 6L, 1L
), .Label = c("9/10/2019 5:49:01 PM", "9/9/2019 5:46:38 PM",
"9/9/2019 5:46:40 PM", "9/9/2019 5:46:42 PM", "9/9/2019 5:48:00 PM",
"9/9/2019 5:48:01 PM"), class = "factor")), row.names = c(NA,
-6L), class = "data.frame")
Это то, что я пытался:
df %>%
mutate(Date = mdy_hms(Date)) %>%
transmute(Subject, Duration = diff = difftime(as.POSIXct(Date, format =
"%m/%d/%Y %I:%M:%S %p"),as.POSIXct(Date,
format = "%m/%d/%Y %I:%M:%S %p" ), units = "secs")) %>%
ungroup %>%
distinct %>%
mutate(grp = str_c("Outdata", row_number()))
Любая помощь приветствуется