2016-05-11 46 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 

希望它有幫助。