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

ggplot2警告:含非有限值行被移除,取消状态Y样本丢失求助

问题原因与解决方法

原因分析

  • 标记为cancel_status = "Y"的取消航班,其dep_time(实际起飞时间)本身就是NA,用这个NA值计算sche_dep_hour、sche_dep_min和sche_dep_exact_time时,结果也会变成NA。
  • ggplot的stat_boxplot()函数会自动剔除包含非有限值(这里就是NA)的行,所以这8255条取消航班的数据被直接过滤,导致绘图时看不到cancel_status = "Y"的组。

解决方法

取消航班没有实际起飞时间,但有计划起飞时间sched_dep_time,我们应该用这个字段来计算计划起飞的精确时间,修改变量生成代码如下:

flights_cancel_status <- flights %>%
  mutate(cancel_status = ifelse(is.na(dep_time), "Y", "N"), 
         sche_dep_hour = sched_dep_time %/% 100,
         sche_dep_min = sched_dep_time %% 100,
         sche_dep_exact_time = sche_dep_hour + sche_dep_min / 60)

再运行原绘图代码:

ggplot(data = flights_cancel_status) +
  geom_boxplot(mapping = aes(x = sche_dep_exact_time,
                             y = cancel_status))

此时cancel_status = "Y"的样本会拥有有效的sche_dep_exact_time值,绘图时会正常显示两组的箱线图,也不会再出现行被移除的警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:21:00