【发布时间】:2020-01-31 02:29:49
【问题描述】:
我有数据集,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
这是我的输入:
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()))
感谢任何帮助
【问题讨论】:
-
这不是4、1、0
df %>% mutate(Date = mdy_hms(Date)) %>% group_by(Subject) %>% summarise(Duration = diff(range(Date))) -
是的。让我纠正一下。让我试试