2016-05-11 23 views
0

我有一个数据帧临时看起来像下面这样:检测间隙时间r和计算数据相应

Time  Count  Colour 
01:02:30 11.000000  Red 
17:05:49 52.000000  White 
04:06:07 4.000000  Blue 
01:07:03 30.000000  Red 
20:08:30 4.000000  Yellow 

当时是最初的ISODate做我剥离其关闭,以获得时间,这是什么我想要使​​用下面的代码。

temp$Time = parse_iso_8601(temp$Time) 
temp$Time <- as.POSIXlt(temp$Time) 
library(chron) 
temp$Time=times(format(temp$Time, format="%H:%M:%S")) 

数据中的时间之间存在差距。我希望找出差距后1小时和差距前1小时的行数。例如凌晨1点之后有3小时的差距,所以我希望找到12点-1点和上午4-5点的行。如何检测差距并从我的数据框中获取所需的行?

也让上午12点和凌晨1点之间的行中我应该怎么办? 这似乎并不奏效!

temp[temp$Time >= 24/24 & temp$Time <= 1/24, ] 

回答

0

一旦转换您的次chron,你可以按照如下步骤进行比较:

temp[temp$Time >= times("00:00:00", format=c('h:m:s')) & temp$Time <= times("01:00:00", format=c('h:m:s')), ] 

在你张贴有00和01之间没有时间的例子: 00,这是一个例子,从1点到2点:

> temp[temp$Time >= times("01:00:00", format=c('h:m:s')) & temp$Time <= times("02:00:00", format=c('h:m:s')), ] 
     Time Count Colour 
1 01:02:30 11 Red 
4 01:07:03 30 Red 

希望它有帮助。