r - 处理两次之间的时间差
问题描述
我有两列
starttime endtime
2019-11-05 18:02:04 2019-11-05 00:02:04
2019-08-02 20:18:00 2019-0802 01:10:00
2019-12-07 17:28:00 2019-12-07 18:00:00
我试图找出开始时间和结束时间之间的时间差异
mutate(col = difftime(endtime,starttime,units = "hours")
但是我得到了没有意义的负时间,我需要它是结束时间 - 开始时间,因为它会弄乱我拥有的数据帧的事情我相信 0.533 是正确的我得到 col -18 -19 0.533
解决方案
我们可以增加endtime
1 天 ifstartttime > endtime
然后使用difftime
library(dplyr)
df %>%
mutate(endtime = if_else(starttime > endtime, endtime + 86400, endtime),
col = difftime(endtime,starttime,units = "hours"))
# starttime endtime col
#1 2019-11-05 18:02:04 2019-11-06 00:02:04 6.0000000 hours
#2 2019-08-02 20:18:00 2019-08-03 01:10:00 4.8666667 hours
#3 2019-12-07 17:28:00 2019-12-07 18:00:00 0.5333333 hours
数据
df <- structure(list(starttime = structure(c(1572976924, 1564777080,
1575739680), class = c("POSIXct", "POSIXt"), tzone = "UTC"),
endtime = structure(c(1572912124, 1564708200, 1575741600), class = c("POSIXct",
"POSIXt"), tzone = "UTC")), row.names = c(NA, -3L), class = "data.frame")
推荐阅读
- flutter - 定期从服务器唤醒颤振应用程序
- android - 使用 viewModelScope 进行网络请求时跳过 X 帧
- node.js - Nodemon 重新启动后 Express-session 不会持续存在
- python - Image classification
- reactjs - 反应'TypeError:项目不可迭代'
- typescript - 扩展 keyof Type Intersection
- python - 为同时运行的每个程序实例唯一标识的python
- python - 通过 ID discord.py 重新发布嵌入消息
- c - ARM Keil 版本 5 [预期为 ')']
- java - FileDialog 自动选择旧的选定文件