12.4 tidyr实战:探索教育统计

本节使用真实的数据集来演示如何使用tidyr重塑数据,重塑数据是数据探索过程中不可或缺的部分。本例中的数据是从世界银行数据浏览器[1]中下载的,它收集了数百个不同经济和社会发展因素的指标(度量)数据。本例考虑的是能反映一个国家教育水平(或对教育投资)的教育指标[2],例如,政府教育支出、识字率、学校入学率和数十个其他教育成就衡量指标。此数据集的缺陷(.csv文件顶部不必要的行、大量的遗失数据、带有特殊字符的长列名)代表了使用真实数据集时所面临的挑战。本节的所有图形均使用第16章中介绍的ggplot2包构建。此分析的完整代码也可在线从本书的代码库中获得[3]

下载数据后,需要将其加载到R环境中:

第一次加载数据时,每个观测结果(行)代表一个国家的指标(indicator),其特征(列)是该指标(indicator)在给定年份的值(参见图12-3)。注意,许多值(尤其是前几年的值)都丢失了(NA)。另外,由于R不允许列名为数字,read.csv()函数已经为每个列名(在原始的.csv文件中只是一个数字)预先加了一个X字符。

图12-3 12.4节中使用的未转换的世界银行教育数据

就指标(indicator)而言,数据是长格式的,而就指标(indicator)和年份而言,数据是宽格式的——一列包含一年的所有值。此结构允许通过筛选感兴趣的指标来比较各年份的指标。例如,可以将每个国家1990年的教育支出与2014年的教育支出进行如下比较: ...

Get 数据科学之编程技术:使用R进行数据清理、分析与可视化 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.