如果向量組件之間的時間大于x,則拆分日期時間向量

我有以下數據:

df <- data.frame(index = 1:85,
                 times = c(seq(as.POSIXct("2020-10-03 21:31:00 UTC"),
                               as.POSIXct("2020-10-03 22:25:00 UTC")
                               "min"),
                           seq(as.POSIXct("2020-11-03 10:10:00 UTC"),
                               as.POSIXct("2020-11-03 10:39:00 UTC"),
                               "min")
                           ))

如果我們看第55行和第56行,時間上有一個明顯的鴻溝:

> df[55:56, ]
   index               times
55    55 2020-10-03 22:25:00
56    56 2020-11-03 10:10:00

我想在拆分的基礎上添加第三個分類列split,

e、 g.第df$split[55, ] = A行和第df$split[56, ] = B

logic like

如果行之間的時間間隔大于5分鐘,則為后續行啟動新類別,直到下一個時間間隔大于5分鐘的實例。

thanks

? 最佳回答:

你可以用

library(dplyr)

df %>% 
  mutate(cat = 1 + cumsum(c(0, diff(times)) > 5))

which returns

   index               times cat
1      1 2020-10-03 21:31:00   1
2      2 2020-10-03 21:32:00   1
3      3 2020-10-03 21:33:00   1
4      4 2020-10-03 21:34:00   1
5      5 2020-10-03 21:35:00   1
6      6 2020-10-03 21:36:00   1
7      7 2020-10-03 21:37:00   1
8      8 2020-10-03 21:38:00   1
...
53    53 2020-10-03 22:23:00   1
54    54 2020-10-03 22:24:00   1
55    55 2020-10-03 22:25:00   1
56    56 2020-11-03 10:10:00   2
57    57 2020-11-03 10:11:00   2
58    58 2020-11-03 10:12:00   2
59    59 2020-11-03 10:13:00   2

如果你需要字母或其他東西,你可以使用

df %>% 
  mutate(cat = LETTERS[1 + cumsum(c(0, diff(times)) > 5)])

將類別12轉換為AB。

主站蜘蛛池模板: 无码AⅤ精品一区二区三区| 日本免费一区二区三区最新 | 日本免费一区二区三区四区五六区| 亚洲日韩国产一区二区三区在线| 国产乱码一区二区三区四| 国产一在线精品一区在线观看| 91一区二区三区| 中文字幕精品一区二区日本| 午夜性色一区二区三区免费不卡视频| 免费一区二区三区四区五区| 精品无码成人片一区二区98| 国产精品第一区揄拍无码| 亚洲福利视频一区| 无码少妇丰满熟妇一区二区| 无码aⅴ精品一区二区三区浪潮 | 久久国产三级无码一区二区| 91在线一区二区三区| 无码一区二区三区在线观看| 日韩电影在线观看第一区| 伊人久久精品无码av一区| 无码人妻久久久一区二区三区| 一区二区三区无码视频免费福利 | 肉色超薄丝袜脚交一区二区| 精品一区二区91| 在线精品亚洲一区二区| 精品免费久久久久国产一区| 亚洲av永久无码一区二区三区| 成人国内精品久久久久一区 | 偷拍精品视频一区二区三区| 精品一区二区三区四区在线播放| 国产乱码伦精品一区二区三区麻豆| 少妇人妻精品一区二区三区| 蜜臀AV一区二区| 亚洲免费视频一区二区三区 | 一区二区三区在线|日本| 国产香蕉一区二区在线网站 | 日韩av无码一区二区三区| 精品人妻系列无码一区二区三区 | 色狠狠一区二区三区香蕉| 亚洲av无码一区二区三区人妖| 中文字幕在线一区二区三区|