如何根据R中另一行的条件计算非连续行之间的时差? time
我们可以为每个块创建组,并计算如何根据R中另一行的条件计算非连续行之间的时差? time,r,R,我们可以为每个块创建组,并计算最后一次和第一次时间之间的时间差,以秒为单位 time <- c('2020-04-25 00:00:12', '2020-04-25 00:01:20', '2020-04-25 00:02:40', '2020-04-25 00:02:48', '2020-04-25 00:02:58', '2020-04-25 00:03:15', '2020-04-25 00:03:45', '2020-04-25 00:04
最后一次
和第一次
时间之间的时间差,以秒为单位
time <- c('2020-04-25 00:00:12', '2020-04-25 00:01:20', '2020-04-25 00:02:40',
'2020-04-25 00:02:48', '2020-04-25 00:02:58', '2020-04-25 00:03:15',
'2020-04-25 00:03:45', '2020-04-25 00:04:23', '2020-04-25 00:04:45',
'2020-04-25 00:05:18', '2020-04-25 00:05:36', '2020-04-25 00:05:55')
id <- c('1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1')
status <- c("idle", "idle", "idle", "idle", "off", "off", "idle", "idle", "use", "use", "use", "idle" )
df <-data.frame(id, time, status)
df
id time status
1 1 2020-04-25 00:00:12 idle
2 1 2020-04-25 00:01:20 idle
3 1 2020-04-25 00:02:40 idle
4 1 2020-04-25 00:02:48 idle
5 1 2020-04-25 00:02:58 off
6 1 2020-04-25 00:03:15 off
7 1 2020-04-25 00:03:45 idle
8 1 2020-04-25 00:04:23 idle
9 1 2020-04-25 00:04:45 use
10 1 2020-04-25 00:05:18 use
11 1 2020-04-25 00:05:36 use
12 1 2020-04-25 00:05:55 idle
库(dplyr)
df%>%
突变(time=as.POSIXct(time,tz=“UTC”),
grp=cumsum(状态!=“空闲”)%>%
筛选器(状态=='空闲')%>%
分组依据(id,grp)%>%
总结(差异=差异时间(上次(时间)、第一次(时间)、单位=“秒”))%>%
选择(-grp)
#id差异
#
#11156秒
#2138秒
我们可以为每个块创建组,并以秒为单位计算最后一个
和第一个
时间之间的时间差
time <- c('2020-04-25 00:00:12', '2020-04-25 00:01:20', '2020-04-25 00:02:40',
'2020-04-25 00:02:48', '2020-04-25 00:02:58', '2020-04-25 00:03:15',
'2020-04-25 00:03:45', '2020-04-25 00:04:23', '2020-04-25 00:04:45',
'2020-04-25 00:05:18', '2020-04-25 00:05:36', '2020-04-25 00:05:55')
id <- c('1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1')
status <- c("idle", "idle", "idle", "idle", "off", "off", "idle", "idle", "use", "use", "use", "idle" )
df <-data.frame(id, time, status)
df
id time status
1 1 2020-04-25 00:00:12 idle
2 1 2020-04-25 00:01:20 idle
3 1 2020-04-25 00:02:40 idle
4 1 2020-04-25 00:02:48 idle
5 1 2020-04-25 00:02:58 off
6 1 2020-04-25 00:03:15 off
7 1 2020-04-25 00:03:45 idle
8 1 2020-04-25 00:04:23 idle
9 1 2020-04-25 00:04:45 use
10 1 2020-04-25 00:05:18 use
11 1 2020-04-25 00:05:36 use
12 1 2020-04-25 00:05:55 idle
库(dplyr)
df%>%
突变(time=as.POSIXct(time,tz=“UTC”),
grp=cumsum(状态!=“空闲”)%>%
筛选器(状态=='空闲')%>%
分组依据(id,grp)%>%
总结(差异=差异时间(上次(时间)、第一次(时间)、单位=“秒”))%>%
选择(-grp)
#id差异
#
#11156秒
#2138秒
@chinsoon12:我可以知道你是如何将问题输入当前格式的,与我发布时相比的吗?谢谢我猜它只是在控制台中打印df
,复制并粘贴到您的问题中。@chinsoon12:与我发布问题时相比,您是如何将问题键入当前格式的?谢谢我猜它只是在控制台中打印df
,复制并粘贴到您的问题中。