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

R语言使用pivot_wider出现Values are not uniquely identified报错如何解决

问题原因

该警告是因为你的数据集内同一个range分组下存在多个item值,pivot_wider默认缺少行对齐的标识字段,无法确定不同range下的item要如何对应行位置,因此会默认生成列表列并抛出警告。

解决代码

你需要先给每个range分组内的item生成行序号作为对齐依据,再执行宽表转换即可:

library(dplyr)
library(tidyr)

dt %>%
  # 按range分组生成组内行号,作为转宽后的行对齐标识
  group_by(range) %>%
  mutate(row_idx = row_number()) %>%
  ungroup() %>%
  pivot_wider(
    names_from = range,
    values_from = item,
    # 空缺位置自动填空字符串,需要留NA的话可以改为values_fill = NA
    values_fill = list(item = "")
  ) %>%
  # 不需要保留行号的话可以删除该列
  select(-row_idx)

效果验证

假设你的原始测试数据如下:

dt <- tibble(
  item = c("苹果", "香蕉", "橙子", "桌子", "椅子"),
  range = c("Range 1", "Range 1", "Range 1", "Range 2", "Range 2")
)

运行上述代码后输出结果为:

Range 1Range 2
苹果桌子
香蕉椅子
橙子

完全符合你要求的「行数匹配item数量更多的分组、空缺位置留空」的需求。


内容的提问来源于stack exchange,提问作者Kishore Kumar Jagadeesan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:24:04