Python统计事故数的分组聚合代码对应的R等效实现方法是什么?
R语言等价实现方案
你给出的Python代码功能为统计accident_severity和day_of_week两列的组合频数后,按事故严重程度分组求和总事故数,R中可以通过以下两种常用方案实现:
方案1:tidyverse(dplyr)实现(主流常用)
首先加载dplyr包,代码如下:
library(dplyr) # 完全等价于你提供的Python代码功能 df %>% # 若原数据有其他列,先选中需要的两列避免干扰,不需要可以去掉这行 select(accident_severity, day_of_week) %>% # 统计两列各组合的频数 count(accident_severity, day_of_week) %>% # 按事故严重程度分组求和 group_by(accident_severity) %>% summarise(total_accidents = sum(n), .groups = "drop")
如果需要统计指定星期几的对应事故量,增加筛选步骤即可,例如统计周一的事故:
df %>% filter(day_of_week == "周一") %>% # 替换为你需要的星期取值 count(accident_severity, name = "total_accidents")
方案2:基础R实现(无需加载第三方包)
# 完全等价于你提供的Python代码功能 # 先提取需要的两列 target_df <- df[, c("accident_severity", "day_of_week")] # 按事故严重程度分组求和 aggregate( x = rep(1, nrow(target_df)), by = list(accident_severity = target_df$accident_severity), FUN = sum )
统计指定星期几的事故量实现如下:
# 筛选周日的事故数据,替换引号内内容即可调整目标星期 sub_df <- df[df$day_of_week == "周日", ] # 输出各严重程度对应的事故数量 table(sub_df$accident_severity)
内容的提问来源于stack exchange,提问作者Marcos
相关产品推荐
相关产品推荐

