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

R语言使用dplyr按月合并同名称条目并计算支持变量总和问题

问题原因

你的代码核心问题是没有处理数值字段中的缺失值:sum()函数默认遇到NA值就会返回NA,而nycflights13的flights数据集中,dep_delay和arr_delay存在大量缺失记录,导致求和结果不符合预期。

调整后的dplyr实现代码

library(tidyverse)
library(nycflights13)

flights_updated <- flights %>%
  # 筛选所需字段,等价于你之前的列选择写法,可读性更高
  select(carrier, month, dep_delay, arr_delay) %>%
  # 按客户名(示例中为carrier)和月份分组
  group_by(carrier, month) %>%
  # 求和时添加na.rm = TRUE参数跳过缺失值
  summarise(
    dep_delay = sum(dep_delay, na.rm = TRUE),
    arr_delay = sum(arr_delay, na.rm = TRUE),
    .groups = "drop" # 计算完成后自动取消分组,避免后续操作出现异常
  )

如果需要同时对多个数值字段求和,可以用更简洁的across写法:

flights_updated <- flights %>%
  select(carrier, month, dep_delay, arr_delay) %>%
  group_by(carrier, month) %>%
  summarise(
    across(c(dep_delay, arr_delay), ~ sum(.x, na.rm = TRUE)),
    .groups = "drop"
  )

补充说明

你给出的示例输出中同一carrier同一month出现了多行记录,属于示例编写误差,按carrier和month两个字段分组后,每个分组组合只会对应唯一一行求和结果,符合数据聚合的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:24:04