如何在R语言中按另一列的唯一值对指定列求和
解决方案
针对你的需求,需要对每个Date对应的rider_count进行分组求和,以下是两种可行的方法:
方法1:使用dplyr(tidyverse)
适合处理tibble格式的数据,代码直观易读:
library(dplyr) # 分组求和,保留dow列 new_both_summary <- new_both %>% group_by(Date, dow) %>% summarise(rider_count = sum(rider_count, na.rm = TRUE), .groups = "drop")
group_by(Date, dow):由于每个日期对应的星期(dow)是唯一的,同时分组可以确保dow列正确对应每个日期sum(rider_count, na.rm = TRUE):求和时自动忽略NA值,避免结果因缺失值变为NA.groups = "drop":取消分组结构,返回常规的tibble
方法2:使用base R
无需额外加载包,适合轻量操作:
new_both_summary <- aggregate( rider_count ~ Date + dow, data = new_both, FUN = sum, na.rm = TRUE )
为什么你之前的代码无效?
你之前的代码仅通过!duplicated()去除了重复日期的行,只保留了每个日期的第一行数据,并没有对rider_count执行求和操作,因此无法得到预期结果。
内容的提问来源于stack exchange,提问作者Jesse LingLing
相关产品推荐
相关产品推荐

