数据整理
原则就是让数据变得更好用。
数据整理是一个从数据框的统计结构(变量与观测)到形式结构(行与列)的映射。他只要遵循原则:
1.每一列代表一个变量。
2.每一行代表一个观测。
整理数据对ggplot2至关重要,因为ggplot2的任务就是将变量映射到视觉属性上。
spread 和 gather
下面两个表格
他们其实是相同的数据,只是形式不同。左侧是宽数据(Cartesian data,笛卡尔型数据),你要通过行与列的交叉点来找对应的值。右侧是长数据(indexed data,指标型数据),你要通过指标来找对应需要的数值。我们不能简单的说哪一个更优,因为两种形式都有可能是整洁的。
注意一点,在一个形式下明确存在的缺失值,可能在另一种形式下不存在。NA确实代表了一种缺失情况,但有时数值缺失单纯是因为那里没有值。
数据整理常常需要化宽为长,称为聚集gathering,但偶尔也需要化长为宽,称为扩散spreading。tidyr包分别提供了gather()函数和spread()函数来实现以上操作。
还可以扩展到更高维的情况,但是由于数据总是用二维储存的(行与列),所以这些扩展有趣但不实用。
gather
gather()函数有四个主要参数:
- data&#