【发布时间】:2015-01-23 15:32:10
【问题描述】:
我在数据框中有时间数据,如下所示:
date day time phone lat lon acc update
6 12/08/2014 Tue 07:25:35PM 9052780809 17.41653 78.40537 3.9 1.406988e+12
44 12/08/2014 Tue 07:26:35PM 9052780809 17.41823 78.40344 3.9 1.406988e+12
114 12/08/2014 Tue 07:28:32PM 9052780809 17.41810 78.39846 3.9 1.406988e+12
152 12/08/2014 Tue 07:29:30PM 9052780809 17.41760 78.39512 3.9 1.406988e+12
188 12/08/2014 Tue 07:30:31PM 9052780809 17.41517 78.39426 3.9 1.406988e+12
223 12/08/2014 Tue 07:31:30PM 9052780809 17.41467 78.39434 3.9 1.406988e+12
大多数时间相差 1-2 分钟,但也有介于两者之间的情况,例如在第二次阅读后相差超过 10 分钟。如果它们之间的差异超过 10 分钟,则连续读数可能在不同的日期。我想在读取间隔超过 10 分钟后插入一个中断,并将它们插入另一个数据帧以进一步处理它们。
date day time phone lat lon acc update
145315 16/08/2014 Sat 11:54:57AM 9052780809 17.41377 78.45923 3.9 1.406988e+12
145371 16/08/2014 Sat 11:55:56AM 9052780809 17.41626 78.45750 3.9 1.406988e+12
145426 16/08/2014 Sat 11:56:55AM 9052780809 17.41746 78.45547 4.0 1.406988e+12
162349 16/08/2014 Sat 05:02:51PM 9052780809 17.41562 78.44446 3.9 1.406988e+12
162404 16/08/2014 Sat 05:03:55PM 9052780809 17.41577 78.44113 3.9 1.406988e+12
162452 16/08/2014 Sat 05:04:51PM 9052780809 17.41638 78.43815 3.9 1.406988e+12
原始数据有 8 列,超过 700000 行。
【问题讨论】:
-
将数据转成POSIXct,然后使用difftime()。
-
... 然后你可以
split只要 difftime > X 分钟 -
试试
dt1 <- strptime(time1, format='%I:%M:%OS%p');split(time1, cumsum(c(FALSE,difftime(dt1[-length(dt1)], dt1[-1], unit='min')>10))) -
@SuryaPavanPynda 请检查更新是否有帮助。