tidyverse 是 R 语言大神 Hadley Wickham 设计的一套进行数据处理和可视化的 R 包集合,包括 ggplot2、dplyr、tidyr、readr、stringr、forcats、tibble、purrr,其中各个包的主要功能如下:
- ggplot2: 数据可视化
- dplyr: 数据处理和转换
- tidyr: 数据清洗
- readr: 文件读取
- stringr: 字符串处理
- forcats: 因子处理
- tibble: 新一代数据框
- purrr: 增强R的函数式编程
熟练掌握以上包的使用,可以很大程度上提升 R 语言数据处理的效率。
安装 tidyverse 时,使用 install.packages(“tidyverse”) 即可,默认会同时安装上面列出的所有包。
我们先来介绍一下新一代数据框 tibble,tibble 也是一种数据框,它对传统数据框的功能进行了一些修改,更易于使用。
1. 创建 tibble
library(tibble)
tibble(
name = c('张三', '李四', '王五', '赵六'),
age = 12:15,
score = c(98.5, 72, 88, 96)
)
name | age | score |
---|---|---|
<chr> | <int> | <dbl> |
张三 | 12 | 98.5 |
李四 | 13 | 72.0 |
王五 | 14 | 88.0 |
赵六 | 15 | 96.0 |
tibble 在输出时,列名下面有一行字母的缩写,描述了每个变量的类型。tibble 的数据类型包括以下几种:int-整数型、dbl-浮点型、chr-字符串型、lgl-逻辑型(True和False)、fct-因子型、date-日期型、dttm-日期时间型,其他数据类型在后续内容中会相继遇到。
2. 类型转换
library(tibble)
iris_tibble <- as_tibble(iris)
iris_tibble[1:10,]
Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
---|---|---|---|---|
<dbl> | <dbl> | <dbl> | <dbl> | <fct> |
5.1 | 3.5 | 1.4 | 0.2 | setosa |
4.9 | 3.0 | 1.4 | 0.2 | setosa |
4.7 | 3.2 | 1.3 | 0.2 | setosa |
4.6 | 3.1 | 1.5 | 0.2 | setosa |
5.0 | 3.6 | 1.4 | 0.2 | setosa |
5.4 | 3.9 | 1.7 | 0.4 | setosa |
4.6 | 3.4 | 1.4 | 0.3 | setosa |
5.0 | 3.4 | 1.5 | 0.2 | setosa |
4.4 | 2.9 | 1.4 | 0.2 | setosa |
4.9 | 3.1 | 1.5 | 0.1 | setosa |
3. 与 data.frame 的对比
tibble 的主要特点有:
- 不会自动转换列类型
- 支持非法列名,只需要用反引号把列名括起来,如列名为
:)
- 输出时自动根据窗口大小调整,排版更加美观
- 用 [] 选取列子集,即使只选取 1 列,返回结果仍为 tibble,而不自动转成向量
在实际使用时,tibble 和 data.frame 并没有太大的区别,只不过 tibble 更适合在 tidyverse 中使用。