基于nycflights13数据集创建降序均值距离DataFrame求助
问题修正与正确代码
你的代码存在几个关键问题:
- 未筛选从JFK出发的航班
- 缺少按
month和day分组的步骤,直接计算均值会得到整个数据集的平均距离,而非每日均值 arrange()里错误传入了flights参数,无需指定数据集- 步骤顺序逻辑错误,应该先过滤、分组计算,再排序、选列
正确代码:
library(tidyverse) library(nycflights13) Q4 <- flights %>% filter(origin == "JFK") %>% # 筛选JFK出发的航班 group_by(month, day) %>% # 按日期分组 summarise(mean_distance = mean(distance, na.rm = TRUE)) %>% # 计算每日平均距离,处理缺失值 arrange(desc(mean_distance)) %>% # 按平均距离降序排序 head(5) %>% # 取前5行 ungroup() # 取消分组(可选,避免后续操作的分组影响) Q4
代码说明:
filter(origin == "JFK"):精准筛选出从JFK机场出发的航班group_by(month, day):按月份和日期分组,确保计算的是每日的平均飞行距离summarise(mean_distance = mean(distance, na.rm = TRUE)):用summarise替代直接调用mean,同时添加na.rm = TRUE处理数据中的缺失值,避免结果出现NAarrange(desc(mean_distance)):直接按平均距离降序排列,无需额外传入数据集head(5):提取排序后的前5条记录,即平均飞行距离最高的5个日期
运行后得到的结果会包含month、day、mean_distance三列,共5行,符合需求。
内容的提问来源于stack exchange,提问作者Chidera N
相关产品推荐
相关产品推荐

