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

使用R语言计算nycflights13数据集UA航司平均飞行时间返回NA的问题

解决UA航班平均飞行时间返回NA的问题

嗨,我之前也碰到过一模一样的情况!你得到[1] NA的核心原因是**flights数据集中的air_time列存在缺失值(NA)**,而R默认的mean()函数只要输入的向量里包含NA,就会直接返回NA,不会自动跳过这些无效值。

快速修正你的现有代码

只需要给mean()函数加上na.rm = TRUE参数,让它计算均值时忽略缺失值就行:

library(nycflights13)
data(flights)
# 计算UA航班的平均飞行时间(忽略缺失值)
mean(flights$air_time[flights$carrier == "UA"], na.rm = TRUE)

更贴合你提到的"Mean by factor by level"的写法

如果你之后需要按不同航空公司(也就是factor的level)分组计算均值,用dplyr包的语法会更清晰易读,也方便扩展需求:

library(nycflights13)
library(dplyr)
data(flights)

# 筛选UA航班并计算平均飞行时间
flights %>%
  filter(carrier == "UA") %>%
  summarise(平均飞行时间 = mean(air_time, na.rm = TRUE))

# 如果要一次性计算所有航空公司的平均飞行时间,去掉filter即可:
flights %>%
  group_by(carrier) %>%
  summarise(平均飞行时间 = mean(air_time, na.rm = TRUE))

额外验证:确认UA航班的缺失值数量

你可以用下面的代码直观看到UA航班的air_time列确实存在缺失值:

sum(is.na(flights$air_time[flights$carrier == "UA"]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 08:57:41