使用tidyr包的gather函数将数据框从宽表转换为长表

33 篇文章 ¥59.90 ¥99.00
本文介绍了在R语言中如何利用tidyr包的gather函数将宽表转换为长表,详细阐述了函数用法,并提供了转换前后的数据框示例代码,便于理解数据转换过程。

使用tidyr包的gather函数将数据框从宽表转换为长表

在R语言中,tidyr包提供了一组功能强大的函数,用于数据的整理和转换。其中,gather函数可以帮助我们将宽表格(wide format)的数据转换为长表格(long format)的形式。本文将介绍如何使用tidyr包中的gather函数来实现这一转换,并提供相应的源代码示例。

首先,我们需要安装并加载tidyr包,可以使用以下命令完成:

install.packages("tidyr")  # 安装tidyr包
library(tidyr)             # 加载tidyr包

接下来,我们准备一个示例数据框,其中包含了多个变量和对应的取值。这是一个典型的宽表格形式,每一列代表一个变量,每一行代表一个观察值。我们将使用gather函数将其转换为长表格形式。以下是示例数据框的代码:

# 创建示例数据框
df <- data.frame(
  ID = c(1, 2, 3),
  Name = c("Alice", "Bob", "Charlie"),
  Math = c(90, 80, 95),
  Science = c(85, 75, 90),
  English = c(92, 88, 93)
)

现在,我们已经准备好了示例数据框,接下来我们可以使用gather函数实现宽表格到长表格的转换。gather函数的基本语法如下:

gather(d
在 R 语言中,`gather()` 函数是 `tidyr` 中的一个核心函数,用于将格式数据转换格式数据[^4]。它特别适用于需要将多个列压缩成键值对的场景。 ### 基本语法 ```r gather(data, key = "key", value = "value", ..., na.rm = FALSE) ``` - `data`: 输入的数据框。 - `key`: 新列名,示变量名称。 - `value`: 新列名,示变量对应的值。 - `...`: 指定要从中提取的列(可以使用列名或列索引)。 - `na.rm`: 是否移除缺失值,默认为 `FALSE`。 ### 使用示例 #### 示例数据 ```r # 创建数据框 df <- data.frame( player = c('A', 'B', 'C', 'D'), year1 = c(12, 15, 19, 19), year2 = c(22, 29, 18, 12) ) # 输出原始数据框 print(df) ``` 输出: ``` player year1 year2 1 A 12 22 2 B 15 29 3 C 19 18 4 D 19 12 ``` #### 使用 gather() 转换数据 ```r library(tidyr) # 将 year1 和 year2 列压缩为 key-value 格式 df_long <- gather(df, key = "year", value = "score", year1, year2) # 输出结果 print(df_long) ``` 输出: ``` player year score 1 A year1 12 2 B year1 15 3 C year1 19 4 D year1 19 5 A year2 22 6 B year2 29 7 C year2 18 8 D year2 12 ``` ### 功能说明 通过 `gather()` 函数,原来的结构被转换结构,每个年份(`year1`、`year2`)作为键(`year`),其对应的成绩(`score`)则作为值。这种转换非常适合后续分析和可视化操作。 ### 高级用法 如果数据中有多个需要聚合的列,可以通过指定范围来简化操作: ```r # 如果有更多类似 year1, year2, year3 的列 df_long <- gather(df, key = "year", value = "score", starts_with("year")) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值