何时使用pivot wider/longer?如何用dplyr/tidyr转换表格格式?
pivot_wider与pivot_longer的适用场景及表格转换实现
一、pivot_wider/pivot_longer的使用时机
- pivot_longer:用于将宽表转换为长表。当表格中存在多列属于同一类变量(例如多列分别对应不同年份的销售额),需要将这些列统一合并为「类别列-数值列」的成对结构时,适合用它。
- pivot_wider:用于将长表转换为宽表。当表格中有一列记录变量类别、一列记录对应数值,需要把类别作为新的列名,数值填充到对应位置时,就用它——这正是你当前需求的场景。
二、表格转换的具体实现
1. 构造示例数据
首先用tibble创建你提供的原始表格(如果已有数据框可跳过此步):
library(tidyr) library(dplyr) # 可选,用于管道符%>%简化代码 df <- tibble( ID = c("Zero", "Zero", "One", "One"), Variables = c("Pregnancies", "Glucose", "Pregnancies", "Glucose"), Value = c(2, 3, 8, 9) )
2. 用pivot_wider实现转换
通过指定names_from(从哪一列提取新列名)和values_from(从哪一列提取对应值),即可完成转换:
df_transformed <- df %>% pivot_wider(names_from = ID, values_from = Value)
运行后得到的结果就是你需要的格式:
# A tibble: 2 × 3 Variables Zero One <chr> <dbl> <dbl> 1 Pregnancies 2 8 2 Glucose 3 9
内容的提问来源于stack exchange,提问作者Antonio
相关产品推荐
相关产品推荐

