0

今天是个好日子。我有一个如下所示的数据框。我想计算每一行中事件的时间差。我该如何做到这一点?我想要的只是一个代码,它将识别重复事件并根据发生时间找出差异。请注意,实现必须在 R 中。谢谢

在此处输入图像描述

4

1 回答 1

0
library(dplyr)   

event <- 'fksaajwbccasdvbaabcadcaeab'
time <- '12233334444455556666777889'

event <- event %>% strsplit('') %>% unlist
time <- time %>% strsplit('') %>% unlist %>% as.numeric

data.frame(event, time) %>%
  mutate(repeat_event = ifelse(lag(event) == event, 1, 0)) %>%
  mutate(time_delta = ifelse((time - lag(time)) == 1, 1, 0))

   event time repeat_event time_delta
1      f    1           NA         NA
2      k    2            0          1
3      s    2            0          0
4      a    3            0          1
5      a    3            1          0
6      j    3            0          0
7      w    3            0          0
8      b    4            0          1
9      c    4            0          0
10     c    4            1          0
11     a    4            0          0
12     s    4            0          0
13     d    5            0          1
14     v    5            0          0
15     b    5            0          0
16     a    5            0          0
17     a    6            1          1
18     b    6            0          0
19     c    6            0          0
20     a    6            0          0
21     d    7            0          1
22     c    7            0          0
23     a    7            0          0
24     e    8            0          1
25     a    8            0          0
26     b    9            0          1
于 2020-11-04T13:56:51.393 回答