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

R语言dplyr分组统计每月取消航班量仅返回总数量问题求助

错误原因

你在summarise函数中调用filter(flights, is.na(dep_time))时,直接引用了原始全量flights数据集,没有使用group_by之后的分组数据,因此每次统计的都是全数据集的总取消航班量,无法按月份分组统计。

修复方案

无需额外嵌套filter和count函数,直接在summarise中对当前分组内的dep_time空值计数即可,修复后代码如下:

library(nycflights13)
library(dplyr)

flights <- nycflights13::flights

flights %>% 
  select(arr_delay, month, dep_time) %>%
  group_by(month) %>% 
  summarise(
    Mean = mean(arr_delay, na.rm = TRUE),
    canceled = sum(is.na(dep_time), na.rm = TRUE)
  )

如果你要保留原有写法的逻辑,只需要把filter的输入对象替换为当前管道传递的分组数据(用.指代)即可:

flights %>% 
  select(arr_delay, month, dep_time) %>%
  group_by(month) %>% 
  summarise(
    Mean = mean(arr_delay, na.rm = TRUE),
    canceled = count(filter(., is.na(dep_time)))$n
  )

运行上述代码后就能得到每个月对应的平均到达延误时长、当月取消航班数的正确统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:18:04