在R中,将数据从宽格式转换为长格式通常使用tidyr
包中的gather()
函数(在较新版本中,推荐使用pivot_longer()
函数)。以下是将数据转换为长格式的基础概念、优势、类型、应用场景以及示例代码。
ggplot2
等绘图包结合使用。假设我们有一个宽格式的数据框df
,包含三个时间点(t1, t2, t3)的数据:
# 安装并加载必要的包
if (!require("tidyr")) install.packages("tidyr")
library(tidyr)
# 创建示例数据框
df <- data.frame(
id = 1:3,
t1 = c(10, 15, 20),
t2 = c(12, 17, 22),
t3 = c(14, 19, 24)
)
# 使用pivot_longer()函数将数据转换为长格式
long_df <- df %>%
pivot_longer(cols = starts_with("t"), names_to = "time", values_to = "value")
print(long_df)
# A tibble: 9 x 3
id time value
<int> <chr> <dbl>
1 1 t1 10
2 1 t2 12
3 1 t3 14
4 2 t1 15
5 2 t2 17
6 2 t3 19
7 3 t1 20
8 3 t2 22
9 3 t3 24
pivot_longer()
函数将宽格式的数据转换为长格式。cols = starts_with("t")
指定要转换的列(即以"t"开头的列)。names_to = "time"
指定新列名用于存储原始列名(时间点)。values_to = "value"
指定新列名用于存储原始列的值。通过这种方式,你可以轻松地将宽格式数据转换为长格式,以便进行进一步的分析和可视化。
领取专属 10元无门槛券
手把手带您无忧上云