【发布时间】:2021-08-17 23:46:31
【问题描述】:
我正在尝试获取 2 个时间戳之间的时间差(以小时为单位)。
我有数据:
ID Lat Long Traffic Start_Time End_Time
1 -80.424 40.4242 54 2018-01-01 01:00 2018-01-01 01:10
2 -80.114 40.4131 30 2018-01-01 02:30 2018-01-01 02:40
3 -80.784 40.1142 12 2018-01-01 06:15 2018-01-01 07:20
我想得到这样的数据
ID Lat Long Traffic Start_Time End_Time differ_hrs
1 -80.424 40.4242 54 2018-01-01 01:00 2018-01-01 01:10 00:50
2 -80.114 40.4131 30 2018-01-02 08:30 2018-01-02 08:40 01:10
3 -80.784 40.1142 12 2018-01-04 19:26 2018-01-04 20:11 01:15
我尝试了这段代码来捕捉小时的差异:
df$differ_hrs<- difftime(df$End_Time, df$Start_Time, units = "hours")
但是,它捕捉到了这样的差异:
ID Lat Long Traffic Start_Time End_Time differ_hrs
1 -80.424 40.4242 54 2018-01-01 01:00 2018-01-01 01:10 0.5
2 -80.114 40.4131 30 2018-01-02 08:30 2018-01-02 08:40 0.70
3 -80.784 40.1142 12 2018-01-04 19:26 2018-01-04 20:11 0.75
然后我尝试使用代码将小时差设置为 format="%H%M":
df$differ_HHMM<- format(strptime(df$differ_hrs, format="%H%M"), format = "%H:%M")
但它会产生所有的 NA。
所以我决定尝试一种不同的方法来计算差异并在命令本身中添加“%H%M”这样的格式:
df$differ_HHMM<- as.numeric(difftime(strptime(paste(df[,6]),"%Y-%m-%d %H:%M:%S"), strptime(paste(df[,5]),"%Y-%m-%d %H:%M:%S"),format="%H%M", units = "hours"))
但我不断收到错误消息:
Error in difftime(strptime(paste(df[, 6]), "%Y-%m-%d %H:%M:%S"), strptime(paste(df[, :
unused argument (format = "%H:%M:%S")
有什么方法可以计算%H:%M格式的时间差吗?
非常感谢您的建议
【问题讨论】:
标签: r timestamp strptime difftime