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

在R中计算两列时间戳差值并导出至CSV文件

计算时间戳时长并导出至CSV的R实现方案

核心步骤

  • 转换时间格式:原始数据中的started_at和ended_at是字符类型,无法直接计算时间差,先将它们转换为R可识别的POSIXct时间格式:

    # 匹配原始时间字符串格式完成转换
    df$started_at <- as.POSIXct(df$started_at, format = "%Y/%m/%d %H:%M")
    df$ended_at <- as.POSIXct(df$ended_at, format = "%Y/%m/%d %H:%M")
    
  • 计算时长并新增列:直接用结束时间减去开始时间,或通过difftime指定输出单位(如分钟、小时),将结果作为新列加入数据框:

    # 计算时长并存储为分钟单位的新列
    df$duration_min <- difftime(df$ended_at, df$started_at, units = "mins")
    # 也可直接相减,结果会自动携带单位
    # df$duration <- df$ended_at - df$started_at
    
  • 导出至CSV文件:将包含时长列的数据框写入本地CSV,避免自动添加行号:

    write.csv(df, "timestamp_data_with_duration.csv", row.names = FALSE)
    

完整代码示例

# 原始数据
df <- data.frame(
  started_at = c("2022/01/13 11:59", "2022/01/10 8:41", "2022/01/25 4:53", "2022/01/04 0:18"),
  ended_at = c("2022/01/13 12:02", "2022/01/10 8:46", "2022/01/25 4:58", "2022/01/04 0:33")
)

# 转换时间格式
df$started_at <- as.POSIXct(df$started_at, format = "%Y/%m/%d %H:%M")
df$ended_at <- as.POSIXct(df$ended_at, format = "%Y/%m/%d %H:%M")

# 计算时长(分钟)
df$duration_min <- difftime(df$ended_at, df$started_at, units = "mins")

# 导出CSV
write.csv(df, "timestamp_data_with_duration.csv", row.names = FALSE)

说明:无需预先拆分日期和时间,直接转换完整的时间字符串即可,转换后的时间格式可直接用于后续统计分析。

内容的提问来源于stack exchange,提问作者marichel fernando

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:25:04