You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中如何将连续时间行的差值转换为分钟单位

解决chron时间差值转分钟单位的问题

chron包的times类型计算差值时,默认单位是天(1天=1单位),所以1分钟对应的数值是1/(24*60) ≈ 0.0006944444。要将差值转换为分钟单位,只需将计算结果乘以1440(24小时×60分钟)即可。

修改后的完整代码

Date <- c("03/06/2019", "03/06/2019", "03/06/2019", "03/06/2019")
Time <- c("17:15:00","17:16:00", "17:18:00", "17:21:00")

df1 <- data.frame(Date, Time)
library(chron)
library(dplyr)

df1$Time <- chron(times = df1$Time)

# 将时间差值转换为分钟单位
df1 <- df1 %>% mutate(diff = (Time - lag(Time)) * 1440)

# 查看结果
print(df1)

输出结果

Date     Time diff
1 03/06/2019 17:15:00   NA
2 03/06/2019 17:16:00    1
3 03/06/2019 17:18:00    2
4 03/06/2019 17:21:00    3

补充说明

如果你更倾向于用语法更直观的lubridate包处理时间,可参考以下替代方案:

library(lubridate)
library(dplyr)

df1 <- df1 %>% 
  mutate(datetime = dmy_hms(paste(Date, Time)),
         diff_min = as.duration(datetime - lag(datetime))/dminutes(1))

该方案通过dmy_hms合并日期时间,再用as.duration和dminutes直接计算分钟差值,结果与之前一致。

内容的提问来源于stack exchange,提问作者Niro Mal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:54:23