在R中查找一天的时间戳差异

时间:2014-11-14 15:33:22

标签: r

我有15分钟的间隔数据,我需要使用R找到下一条记录和当前记录之间的时差,但我无法做到。可以在这里帮忙吗?

    TIMESTAMP         ID  timediff
07/29/2014 10:15 AM 189252  0:15
07/29/2014 10:45 AM 189252  0:30
07/29/2014 11:00 AM 189252  0:15
07/29/2014 11:15 AM 189252  0:15
07/29/2014 11:30 AM 189252  0:15
07/29/2014 11:45 AM 189252  0:15
07/29/2014 12:00 PM 189252  0:15
07/29/2014 12:15 PM 189252  0:15
07/29/2014 12:30 PM 189252  0:15
07/29/2014 01:00 PM 189252  0:30
07/29/2014 01:15 PM 189252  0:15
07/29/2014 01:30 PM 189252  0:15
07/29/2014 01:45 PM 189252  0:15

2 个答案:

答案 0 :(得分:1)

只要您的数据采用适当的日期时间格式,这就很简单:

> foo <- as.POSIXct(c("07/29/2014 10:15","07/29/2014 10:45"),
  format="%m/%d/%Y %H:%M")
> foo
[1] "2014-07-29 10:15:00 CEST" "2014-07-29 10:45:00 CEST"
> diff(foo)
Time difference of 30 mins

查看?as.POSIXct?strptime

答案 1 :(得分:0)

如果diff条目为TIMESTAMP个对象,则可以使用Date - 使用as.Date()来确保。

now1<-Sys.time()
now2<-Sys.time()
now3<-Sys.time()
now4<-Sys.time()

df<-data.frame(TIMESTAMP=c(now1,now2,now3,now4))
df$differences<-c(NA,diff(df$TIMESTAMP))