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

如何按member_casual分组计算两datetime列的平均时间差?

问题解决:按会员类型分组计算平均骑行时长

你当前代码得到两组相同结果的原因是:单独创建的time_trip向量没有和原数据框df绑定,分组计算时实际是在对整个time_trip的均值重复输出,导致两组结果一致。

修改后的代码方案

如果started_at和ended_at已经是datetime格式,直接在管道流内计算耗时并分组统计:

# 按会员类型分组计算平均骑行时长
df %>%
  mutate(time_trip = difftime(ended_at, started_at, tz = "CST", units = "mins")) %>%
  group_by(member_casual) %>%
  summarise(平均骑行时长 = mean(time_trip, na.rm = TRUE))

额外处理:如果时间列不是datetime格式

如果started_at和ended_at还未转换为datetime类型,先添加格式转换步骤:

# 转换时间格式并分组计算平均骑行时长
df %>%
  mutate(
    started_at = as.POSIXct(started_at, tz = "CST"),
    ended_at = as.POSIXct(ended_at, tz = "CST"),
    time_trip = difftime(ended_at, started_at, units = "mins")
  ) %>%
  group_by(member_casual) %>%
  summarise(平均骑行时长 = mean(time_trip, na.rm = TRUE))

关键说明

  • 使用mutate在原数据框内新增time_trip列,确保每条记录的时长与对应的会员类型一一关联
  • 添加na.rm = TRUE可以忽略缺失的时间记录,避免均值计算出错
  • 自定义结果列名(如平均骑行时长)让输出更易读

内容的提问来源于stack exchange,提问作者Nicolas Grisè

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:36:05