R两列之间的时间差(以毫秒为单位)

时间:2016-08-24 19:28:24

标签: r datetime

我有一个包含效果数据的数据集。第1列包含END_DATE,第2列包含START_DATE。 两列中日期时间的格式:03-08-16 08:55:59,177000000 我想添加一个新列,其中存储了以毫秒为单位的时差。

示例:

  

第1栏:03-08-16 08:55:59,177000000

     

第2栏:03-08-16 08:55:59,888000000

     

新列,以秒为单位:0,711

我试图转换为as.POSIX ..但不知何故,毫秒丢失了。有一个答案说明“操作系统”格式选项可以解决问题,但我没有成功:

  

time = as.POSIXct(“03-08-16 08:56:06,345000000”,格式=“%d-%m-%y%H:%M:%OS”)

     

时间

     

[1]“2016-08-03 08:56:06 CEST”

提前致谢!

1 个答案:

答案 0 :(得分:1)

扩展我的评论:

d <- data.frame(col1= '03-08-16 08:55:59,177000000', col2= '03-08-16 08:55:59,888000000')

d2 <- data.frame( lapply(d, sub, patt="[,]", repl="."))
d2
#-------
                         col1                        col2
1 03-08-16 08:55:59.177000000 03-08-16 08:55:59.888000000
#-------
 d3 <- data.frame( lapply(d2, as.POSIXct, format= "%d-%m-%y %H:%M:%OS")  )
 d3
#--------
                 col1                col2
1 2016-08-03 08:55:59 2016-08-03 08:55:59
#-------
 difftime(d3$col1, d3$col2)
#-------
Time difference of -0.711 secs