📜  在 R 中将 DataFrame 从长格式重塑为宽格式(1)

📅  最后修改于: 2023-12-03 14:51:07.321000             🧑  作者: Mango

将 DataFrame 从长格式重塑为宽格式

在R中,我们经常需要通过改变数据的格式来适应不同的分析需求。一个常见的操作是将数据从"长格式"(long format)转换为"宽格式"(wide format),也被称为数据透视,其中每个观测值在一行中,而每个变量都在一列中。

在R中,可以使用多种方法将DataFrame从长格式重塑为宽格式,本介绍将介绍如何使用tidyverse包中的pivot_wider函数来实现。

准备工作

首先,确保已安装并加载tidyverse包,可以使用下面的代码安装并加载它:

install.packages("tidyverse")
library(tidyverse)
示例数据

我们将使用一个示例数据集,该数据集包含三个变量:ID、时间和值。该数据集展示了不同ID在不同时间点上的值。

df <- data.frame(ID = c(1, 1, 2, 2),
                 time = c("t1", "t2", "t1", "t2"),
                 value = c(10, 15, 20, 25))

print(df)

# Output:
#   ID time value
# 1  1   t1    10
# 2  1   t2    15
# 3  2   t1    20
# 4  2   t2    25
使用pivot_wider函数进行重塑

现在,我们将使用pivot_wider函数将数据从长格式转换为宽格式。在pivot_wider函数中,我们需要指定要用作新列的变量(在这里是"time"列),以及要用作值的变量(在这里是"value"列)。

df_wide <- df %>% 
  pivot_wider(names_from = time, values_from = value)

print(df_wide)

# Output:
#   ID   t1   t2
# 1  1   10   15
# 2  2   20   25

在这个示例中,我们将"time"列中的唯一值作为新列,将对应的"value"列中的值填充到正确的位置上。每个观测值现在占据一行,每个时间点在一列中。

结论

通过使用pivot_wider函数,我们可以方便地将DataFrame从长格式重塑为宽格式,使数据更适合特定的分析需求。请注意,pivot_wider函数是tidyverse包中的一部分,该包提供了许多用于数据处理和分析的强大工具。