在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
相关产品推荐
相关产品推荐

