📅  最后修改于: 2023-12-03 14:46:52.857000             🧑  作者: Mango
tidyr
包是一个 R 语言中的数据整理工具。它可以帮助我们轻松地将不同形式的数据整理成 Tidy Data 的形式,从而方便我们进行数据分析和可视化操作。
Tidy Data 概念来源于 Hadley Wickham 在论文 "Tidy Data" 中提出的数据时序,它具备以下三个特征:
符合 Tidy Data 规范的数据更加易于处理和分析。
你可以在 R 中使用以下命令安装 tidyr
包:
install.packages("tidyr")
下面介绍一些 tidyr
包中常用的函数:
gather()
函数用于将宽数据(wide format)转换为长数据(long format)。
gather(data, key, value, columns, factor_key = FALSE, na.rm = FALSE)
参数说明:
data
:需要转换的数据集。key
:新生成的变量列名。value
:新生成的值列名。columns
:需要转换的列名,支持传入多个列名。factor_key
:是否将 key
列转换成 factor 类型,默认值为 FALSE
。na.rm
:是否移除缺失值,默认值为 FALSE
。示例:
library(tidyr)
data <- data.frame(id = 1:3, name = c("Tom", "Jerry", "Joe"), score_math = c(80, 90, 85), score_eng = c(70, 85, 92))
data_long <- gather(data, subject, score, score_math:score_eng)
print(data_long)
输出结果:
id name subject score
1 1 Tom math 80
2 2 Jerry math 90
3 3 Joe math 85
4 1 Tom eng 70
5 2 Jerry eng 85
6 3 Joe eng 92
spread()
函数用于将长数据(long format)转换为宽数据(wide format)。
spread(data, key, value, fill = NA, convert = FALSE)
参数说明:
data
:需要转换的数据集。key
:需要转换的变量列名。value
:新生成的数值列名。fill
:缺失值填充值,默认为 NA
。convert
:是否类型转换,默认为 FALSE
。示例:
library(tidyr)
data_long <- data.frame(id = c(1, 2, 2, 3), subject = c("math", "math", "eng", "eng"), score = c(80, 90, 85, 92))
data_wide <- spread(data_long, subject, score)
print(data_wide)
输出结果:
id eng math
1 1 NA 80
2 2 85 90
3 3 92 NA
tidyr
包是一个非常实用的 R 语言中的数据整理工具,提供了多种常用函数方便我们将不同形式的数据整理为 Tidy Data 的形式。掌握 tidyr
包的使用技巧可以大大提升我们的数据处理和分析能力。