You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

何时使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:05:55