如何按省份分组、按月份统计累计感染数总和(R语言场景)
实现方案
你需要先从日期字段提取年月维度,再按「省份+年月」分组对感染数求和即可,以下提供两种常用实现方式:
方法1:tidyverse套件实现(可读性更高)
依赖dplyr做分组聚合、lubridate做日期处理,代码如下:
# 加载依赖包 library(dplyr) library(lubridate) result <- ds %>% # 日期列转格式,提取年月(统一为每月第一天格式,也可以转成"2021-04"字符串格式) mutate(month = floor_date(ymd(Date_of_publication), unit = "month")) %>% # 按省份、月份分组 group_by(Province, month) %>% # 求和感染数,na.rm参数避免空值导致结果异常 summarise(total_monthly = sum(Total_reported, na.rm = TRUE), .groups = "drop")
如果不需要日期格式只需要年月字符串,把mutate行替换为mutate(month = format(ymd(Date_of_publication), "%Y-%m"))即可。
方法2:Base R实现(无需额外安装包)
# 处理日期生成年月列 ds$month <- format(as.Date(ds$Date_of_publication), "%Y-%m") # 分组求和 result <- aggregate(Total_reported ~ Province + month, data = ds, FUN = sum, na.rm = TRUE)
两种方法输出的结果均为每个省份对应每个月的感染数总和,可直接按需使用。
内容的提问来源于stack exchange,提问作者user12973342
相关产品推荐
相关产品推荐

