在数据框中添加/减去日期时间列

时间:2017-12-17 13:10:30

标签: r date datetime time

我有一个带有两个文本列的数据框,这些列基本上是时间戳列,即BEFORE和AFTER,格式为12/29/2016 4:29:00 PM。我想比较每行的BEFORE和AFTER时间之间的差距是否超过5分钟。 R中的哪个包允许在时间戳之间减去?

1 个答案:

答案 0 :(得分:1)

无需额外包装,使用基础R即可实现日期时间比较。

首先将您的角色强制转换为有效的日期时间结构。我在这里使用<?php $line = explode('\r\n', "i c"); echo $line[1]; ?>

POSIXct

然后,为了获得差异,您可以使用d1= as.POSIXct("12/29/2016 4:29:00 PM",format="%m/%d/%Y %H:%M:%S") d2= as.POSIXct("12/30/2016 5:29:00 PM",format="%m/%d/%Y %H:%M:%S")

difftime

请注意所有这些函数都是矢量化的所以相同的代码将与矢量一起使用。

管理PM / AM

为了处理PM / AM,我们应该将%p添加到与difftime(d1,d2,units="mins") 而不是%I结合使用的格式中:

%H

有关日期/时间格式的更多帮助,请阅读d1= as.POSIXct("12/28/2016 11:53:00 AM", format="%m/%d/%Y %I:%M:%S %p") d2= as.POSIXct("12/28/2016 12:03:00 PM", format="%m/%d/%Y %I:%M:%S %p") difftime(d2,d1,units="mins") ## Time difference of 10 mins