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

如何在R语言中按24小时时段+users_ride分组统计rides_id数量

按小时+用户类型统计骑行量并可视化的实现方案

第一步:准备工具包

先安装并加载需要的R包,tidyverse集合了数据处理和绘图的常用工具,lubridate专门处理时间数据:

# 未安装的话先执行安装
install.packages(c("tidyverse", "lubridate"))

# 加载包
library(tidyverse)
library(lubridate)

第二步:处理时间数据并提取小时

把原始的start_time转换成标准时间格式,再提取小时字段,为后续分组做准备:

# 转换时间格式并提取小时
trip_data_processed <- trip_data %>%
  mutate(start_time = ymd_hms(start_time),  # 将字符串转为可识别的时间格式
         hour = hour(start_time))  # 提取小时(范围0-23)

第三步:分组统计骑行数量

按小时和用户类型分组,统计每组的骑行ID数量:

trip_stats <- trip_data_processed %>%
  group_by(hour, users_ride) %>%
  summarise(ride_count = n(), .groups = "drop")  # n()统计每组行数,即骑行数量

第四步:绘制可视化图表

用分组柱状图展示每个小时不同用户类型的骑行量,直观清晰:

ggplot(trip_stats, aes(x = hour, y = ride_count, fill = users_ride)) +
  geom_col(position = "dodge", width = 0.7) +  # 分组并排柱状图
  scale_x_continuous(breaks = 0:23) +  # x轴显示0到23所有小时刻度
  labs(title = "各时段不同用户类型的骑行数量",
       x = "一天中的小时",
       y = "骑行数量",
       fill = "用户类型") +
  theme_minimal()  # 简洁主题风格

补充调整建议

  • 如果数据量较大,折线图会更适合,把geom_col替换为geom_line()再加geom_point()即可
  • 可通过scale_fill_manual()自定义柱子颜色,比如scale_fill_manual(values = c("member" = "#2E86AB", "casual" = "#F25F5C"))

内容的提问来源于stack exchange,提问作者Fi Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:10:27