R for Data Science航班延误热力图示例代码合理性疑问
问题1:两次分组操作的作用
- 第一次按
month、dest分组:是为了聚合计算每个目的地、每个月的平均起飞延误时长,得到「月份-目的地」维度的汇总数据。 - 第二次按
dest单独分组:是为了筛选出全年12个月都有航班执飞的目的地。分组后调用filter(n() == 12)时,n()统计的是每个目的地对应的汇总数据行数,行数等于12就说明该目的地12个月都有有效数据,能避免后续热力图出现不规则的空缺块。
问题2:ungroup()操作的目的
完成目的地筛选后,数据集仍然是按dest分组的状态,此时的mutate操作只会在每个分组内生效。我们需要对所有目的地按照整体平均延误水平重新排序,就必须先调用ungroup()取消分组,让后续的reorder()可以基于全量数据计算排序规则,同时也能避免残留分组给后续ggplot绘图带来意料之外的逻辑错误。
问题3:标签杂乱仍被视为正确答案的原因
题目本身的要求就包含两个部分:
使用geom_tile()搭配dplyr探索平均航班延误随目的地、月份的变化规律,说明该绘图难以阅读的原因以及如何优化。
这个解决方案首先完全符合第一部分的技术要求,用指定的工具完成了数据聚合、热力图绘制的探索任务。更重要的是,它输出的标签拥挤的热力图刚好暴露了这类可视化的典型缺陷,刚好对应题目第二部分要求的「说明难以阅读的原因」的考察点,是题目要求的完整解决方案的一部分,并非要求输出完美无缺的可视化结果。
内容的提问来源于stack exchange,提问作者Shawn Hemelstrand
相关产品推荐
相关产品推荐

