我有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
答案 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))