【R语言】tidyverse之二:数据重塑

2020-06-17 00:00:00 拆分 数据 变量 指定 整洁

将新导入的数据变成整洁数据。

一. 什么是整洁数据?

采用 Hadley 的表述,脏的/不整洁的数据往往具有如下特点:

  • 首行(列名)是值,不是变量名;
  • 多个变量放在一列;
  • 变量既放在行也放在列;
  • 多种类型的观测单元在同一个单元格;
  • 一个观测单元放在多个表。

而整洁数据具有如下特点:

  • 每个变量构成一列;
  • 每个观测构成一行;
  • 观测单元的每个属性构成一个单元格。

Tidyverse 包和 R 函数操作的都是这种整洁数据:对变量重新编码、排序、计算,以及根据分析的需要变换出不同的数据子集。

而不整洁数据,首先需要变成整洁数据,这就是数据重塑。

下面看一个不整洁数据与整洁数据对比的例子:

observation 列有两个变量数据,列名中的 A/B 应是分类变量 species 的两个水平值,测量值列 count 和 dbh 应各占 1 列,而不是 2 列。

变成整洁表如下:

注:这里的关键是,要学会区分哪些是“变量”“观测”“值”。

二. 宽表变长表

宽表的特点是:表比较宽,本来该是”值“的,却出现在”变量“(名)中。

这就需要给它变到“值”中,新起个列名存为一列,这就是所谓的宽表变长表

tidyr 包(1.0)提供了更先进的 pivot_longer() 函数来实现。

例 1 以 relig_income 数据集为例

relig_income

相关文章