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

使用pivot_wider时如何合并重复行列并生成固定数量员工列?

解决方案:固定列数的宽表转换

完全可以实现这个需求,用R的tidyverse工具链就能轻松搞定,具体步骤如下:

1. 准备环境与示例数据

先加载必要的包,并构造你提供的示例数据集:

library(tidyverse)

# 示例数据集
df <- tibble(
  Case.Number = c("001", "001", "002", "003"),
  `Employee Name` = c("Name 1", "Name 2", "Name 3", "Name 2")
)

2. 数据转换步骤

核心思路是先给每个Case.Number下的员工编序号,限制序号范围为1-3,再转宽表:

df_wide <- df %>%
  # 按案件编号分组,给组内员工编顺序号
  group_by(Case.Number) %>%
  mutate(emp_seq = row_number()) %>%
  ungroup() %>%
  # 只保留前3个员工(若某案件关联超过3人,仅取前3)
  filter(emp_seq <= 3) %>%
  # 补全每个案件的1-3号员工位置,确保转宽表后列数固定
  complete(Case.Number, emp_seq = 1:3) %>%
  # 转换为宽表,设置列名格式
  pivot_wider(
    id_cols = Case.Number,
    names_from = emp_seq,
    values_from = `Employee Name`,
    names_prefix = "Employee Name "
  )

3. 最终输出

运行上述代码后,得到的结果完全符合你的预期:

# # A tibble: 3 × 4
#   Case.Number `Employee Name 1` `Employee Name 2` `Employee Name 3`
#   <chr>       <chr>             <chr>             <chr>            
# 1 001         Name 1            Name 2            NA               
# 2 002         Name 3            NA                NA               
# 3 003         Name 2            NA                NA               

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:35:41