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

在R语言中按出发小时与站点分组统计出行班次总数

按出发小时和站点分组统计班次总数的解决方案

嘿,这事儿好办!我帮你整理两种常用的R语言实现方法,轻松搞定你的需求~

方法1:用dplyr包(tidyverse风格,直观易读)

这是处理这类分组统计最常用的方式,步骤清晰易懂:

  • 先确保你装了dplyr包(没装的话先运行安装代码)
  • 按hour和id分组,再统计每组的记录数(也就是班次总数)
# 安装并加载dplyr包(如果还没装的话)
if (!require(dplyr)) {
  install.packages("dplyr")
  library(dplyr)
}

# 核心分组统计代码
result <- d %>%
  group_by(hour, id) %>%
  summarise(count = n(), .groups = "drop")

# 查看最终结果
print(result)

小解释:n()函数会自动计算每组的行数,也就是对应站点对应小时的出发班次;.groups = "drop"是为了让结果回到普通数据框格式,避免后续操作受分组属性影响。

方法2:用base R的xtabs()函数(无需额外装包)

如果你不想加载第三方包,用R自带的函数也能搞定,还能生成交叉表格式的结果:

# 生成交叉表,统计每个hour+id组合的班次数量
result_table <- xtabs(~ hour + id, data = d)

# (可选)转换成和dplyr结果一致的数据框格式
result_df <- as.data.frame(result_table, responseName = "count")

# 查看结果
print(result_df)

小解释:xtabs()会生成一个行列分别对应hour和id的交叉表,单元格值就是班次数量;转换成数据框后,格式就和你预期的完全匹配了。

用你的示例数据测试的结果

用你给出的d子集运行上面的代码,会得到这样的结果:

hour id count
1 8 101 1
2 9 101 1
3 13 101 1
4 17 102 1
5 18 101 2

完全符合你要的「每个站点每小时出发班次总数」的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:10:45