假设这些是数据集中很少有时间戳的观察结果。

 Id     Status    DateCreated          Group
 10     Read      2017-11-04 18:24:55  Red
 10     Write     2017-11-04 18:24:56  Red
 10     Review    2017-11-04 18:25:16  Red
 10     Read      2017-11-04 18:26:17  Red
 10     Write     2017-11-04 18:26:47  Red

如何折叠相距在 1 分钟内的行。例如,第 1、2、3 行折叠为 1 行,第 4 行和第 5 行折叠为第二行。

预期的输出看起来像这样
 Id     Status              DateCreated            Date Ended             Group
 10     Read,Write,Review   2017-11-04 18:24:55    2017-11-04 18:25:16    Red, Red, Red
 10     Read,Write          2017-11-04 18:26:17    2017-11-04 18:26:47    Red, Red

以下是在此示例中重现测试数据集的代码。
df <- structure(list(Id = structure(c(1L, 1L, 1L, 1L, 1L), .Label = "10", class = "factor"),
    Status = structure(c(1L, 3L, 2L, 1L, 3L), .Label = c("Read",
    "Review", "Write"), class = "factor"), DateCreated = structure(1:5, .Label = c("2017-11-04 18:24:55",
    "2017-11-04 18:24:56", "2017-11-04 18:25:16", "2017-11-04 18:26:17",
    "2017-11-04 18:26:47"), class = "factor"), Group = structure(c(1L,
    1L, 1L, 1L, 1L), .Label = "Red", class = "factor")), class = "data.frame", row.names = c(NA,
-5L))

任何帮助深表感谢。提前致谢。

最佳答案

我会做这样的事情:

df %>%
  mutate(DateCreated = ymd_hms(DateCreated))%>%
  group_by(minute(DateCreated))%>%
  arrange(DateCreated)%>%
  summarise(Status = paste(Status,collapse = ", "),DateCreated = DateCreated[1],Date_ended = last(DateCreated),Group = paste(Group,collapse = ", "))

关于r - 按时差压扁多行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54410783/

10-12 19:22