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

如何在R中使用pivot_wider将长格式数据集转换为宽格式

解决方案

Python Pandas 实现

你的数据集属于固定周期堆叠的长格式数据,每3行对应一条完整观测,按如下代码处理即可:

import pandas as pd

# 假设你已将原始数据读入为DataFrame,列名为col1、col2
# 生成分组标识:固定每3行一组时用这行
df['group_id'] = df.index // 3
# 若不固定行数,以ID出现作为新分组的标识,用下面这行代替上一行即可
# df['group_id'] = df['col1'].eq('ID').cumsum()

# 透视转为宽格式
df_wide = df.pivot(
    index='group_id',
    columns='col1',
    values='col2'
).reset_index(drop=True)

# 输出结果和你预期的格式完全一致
print(df_wide)

R tidyverse 实现

library(tidyverse)

# 生成分组标识,固定3行一组用这部分
df <- df %>% 
  mutate(group_id = (row_number() - 1) %/% 3)

# 不固定行数按ID分组用下面这行代替上面的mutate逻辑
# df <- df %>% mutate(group_id = cumsum(col1 == "ID"))

# 透视转宽
df_wide <- df %>% 
  pivot_wider(
    names_from = col1,
    values_from = col2
  ) %>% 
  select(-group_id)

Excel Power Query 实现

  • 把原始数据导入Power Query编辑器
  • 新增从0开始的索引列
  • 新增自定义列,输入公式 Number.IntegerDivide([索引], 3) 作为分组列
  • 选中col1列,执行「透视列」操作,值列选col2,聚合选项选「不要聚合」
  • 删除不需要的索引列、分组列即可导出结果

内容的提问来源于stack exchange,提问作者alex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:36:04