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

R语言pivot_wider转宽表时values_from长度不匹配问题求解

library(tidyverse)

# 样例数据
A <- c("EA32", "EA32", "EA32", "EA67", "EA67", "EA67", "EA67",
       "EA34", "EA34", "EA34", "EA69", "EA69", "EA69", "EA69")
B <- c("c1", "c2", "c3", "c1", "c2", "c1", "c2",
       "c2", "c2", "c1", "c2", "c2", "c3", "c3")
C <- c("USB", "UA", "UA", "UD", "UE", "USB", "UA",
       "UA", "USB", "UZ", "UA", "UE", "USB", "UE")
df <- data.frame(A,B,C)

# 核心转换代码
df2 <- df %>%
  group_by(B, A) %>%
  mutate(row_id = row_number()) %>%
  ungroup() %>%
  pivot_wider(names_from = A, values_from = C) %>%
  select(-row_id) %>%
  arrange(B)

直接运行上述代码即可得到你需要的df2结构,不管你实际数据中A有多少个不同取值,都不需要修改代码适配列数。

原理解释:你之前直接调用pivot_wider生成列表列,是因为同一个B+A组合存在多个C值,添加组内行号row_id后,每个B+A+row_id组合仅对应一个C值,透视后不会出现列表合并的问题,也无需单独拆分每一列。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:15:03