如何用R语言从西班牙新冠数据框中找出感染人数最多的日期?
按日期分组汇总新冠病例并找出峰值日期
这里提供两种在R中实现需求的方法,适配不同的代码习惯:
方法1:基础R原生函数实现
无需额外安装包,直接用内置函数完成分组求和与最大值筛选:
# 1. 按fecha分组,计算每日新增病例总数 casos_diarios <- aggregate(num_casos ~ fecha, data = db, FUN = sum) # 2. 找出病例总数最多的日期 fecha_pico <- casos_diarios$fecha[which.max(casos_diarios$num_casos)] # 若要同时查看峰值日期和对应病例数,可输出整行 casos_diarios[which.max(casos_diarios$num_casos), ]
方法2:dplyr(tidyverse)实现
如果习惯使用管道式语法,推荐用dplyr包,代码可读性更强:
# 首次使用需安装dplyr # install.packages("dplyr") library(dplyr) # 分组汇总+筛选峰值 db %>% group_by(fecha) %>% summarise(total_casos = sum(num_casos)) %>% filter(total_casos == max(total_casos))
说明
aggregate(num_casos ~ fecha, ...):按fecha列分组,对每组的num_casos求和which.max():返回向量中最大值的位置索引- dplyr的管道操作
%>%:将前一步的结果传递给后一步,逐步完成分组、汇总、筛选
内容的提问来源于stack exchange,提问作者slow_learner
相关产品推荐
相关产品推荐

