R语言tidyr包spread()函数
时间: 2024-10-13 16:12:59 浏览: 46
数据分析R语言实战
R语言中的`tidyr`包提供了一个非常有用的函数`spread()`,它的作用是重塑数据框(data frame),将数据从“长格式”转换为“宽格式”。在长格式的数据中,一列通常包含多个类别或变量值,而在宽格式中,每个类别有自己的列。`spread()`函数通常配合`gather()`函数使用,形成一个数据清洗工作流程:
- `gather()`用于合并重复的列到一个新的列中,同时创建一个标识符列来区分原来的类别。
- `spread()`则相反,它接受一个标识符列和一个数值列,然后将数值分配到新的列名下,根据标识符列的唯一值。
例如,假设有一个数据集,其中有一列是分类变量(如颜色),另一列是对应颜色的数量。你可以使用`gather()`收集这些数量到一个新的列中,再用`spread()`将它们分布到各自的颜色列上。
```r
library(tidyr)
# 假设原始数据
df_long <- data.frame(
fruit = c("apple", "orange", "apple", "banana"),
count = c(5, 7, 3, 9)
)
# 首先使用 gather
df_melted <- gather(df_long, key = "color", value = "count", -fruit)
# 然后使用 spread
df_wide <- spread(df_melted, color, count)
# 结果数据框会变成
df_wide
```
阅读全文