计算R

时间:2016-04-11 02:53:35

标签: r time intervals difftime

我在这个页面上遇到过类似的问题:

Date-time differences between rows in R

以下是我的数据的一小部分:

DT  
29/07/12 20:05:01   
29/07/12 20:20:59   
30/07/12 02:42:08 
30/07/12 02:53:17 
30/07/12 02:53:18 
30/07/12 02:53:19 

我想做这个人问的同样的事情,即计算后续行之间R的时间差(增量时间)。时间戳存储在数据框中,时间为日期时间(日/月/年小时:分:秒)。

这段代码是善意建议并且大多数时间都有效,除了时间间隔突破几天,然后我得到大量不正确的数字(例如31/072469秒之间29/07/12 20:20:59和30 / 07/12 02:42:08。

c_time <- as.POSIXlt( mydf$c_time )
c_time <- rev( c_time )
difftime(c_time[1:(length(c_time)-1)] , c_time[2:length(c_time)])

有人有任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

最好明确表示格式,否则你必须仔细阅读默认选项中发生的事情:

mydf <- read.table(text="c_time
29/07/12 20:05:01  
29/07/12 20:20:59  
30/07/12 02:42:08
30/07/12 02:53:17
30/07/12 02:53:18
30/07/12 02:53:19", sep=",", row.names=NULL, header=T)
c_time <- as.POSIXlt( mydf$c_time, format="%d/%m/%y %H:%M:%S")
c_time <- rev( c_time )
difftime(c_time[1:(length(c_time)-1)] , c_time[2:length(c_time)])

##Time differences in secs
##[1]     1     1   669 22869   958