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

为何pivot_wider()输出会将5个数值嵌套为列表列并返回警告

问题原因

tidyr::pivot_wider() 转换宽格式时,要求用于确定输出行的标识组合必须唯一对应1个待展开的值。你当前的输入数据中,name 列的 AL、PD 类别各自对应5个 intrcpt 值,调用函数时你只指定了第一列为行索引,但所有行的第一列没有区分度,导致函数无法将多个值匹配到不同行,只能将同一类别的所有值封装为列表列返回,同时触发重复值警告。

解决方案

如果需要得到非列表格式的宽表,可以先给每个 name 分组内的观测添加序号作为行标识,再执行宽表转换,示例代码如下:

library(tidyverse)
m="
    intrcpt name 
 1  0.0303  AL   
 2  0.0511  PD   
 3 -0.269   AL   
 4 -0.126   PD   
 5  0.195   AL   
 6  0.0647  PD   
 7  0.00690 AL   
 8 -0.0471  PD   
 9  0.0375  AL   
10  0.0571  PD
"
dat <- read.table(text = m,h=T)

dat %>%
  group_by(name) %>%
  mutate(row_id = row_number()) %>%
  ungroup() %>%
  pivot_wider(id_cols = row_id, values_from = intrcpt, names_from = name)

运行后输出的就是普通的数值型宽表,不会再出现列表列和警告。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:27:03