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

如何展开列表列?使用unnest()保留嵌套元素名称遇阻

解决方法:使用unnest_wider()替代普通unnest()

你遇到的问题是因为普通的unnest()函数是用来将列表中的元素拆分为行的,它不会保留列表元素的名称。而你需要的是把命名列表/向量的元素扩展为列,这时候tidyr包中的unnest_wider()函数正好能满足需求。

完整代码示例

library(tidyverse)

# 你的原始数据
original_df <- tibble(
  a = c('first', 'second'), 
  b = list(c('colA' = 1, 'colC' = 2), c('colA'= 3, 'colB'=2))
)

# 转换为目标格式
result_df <- original_df %>% 
  unnest_wider(b)

# 查看结果
result_df

运行结果

# A tibble: 2 × 4
  a      colA  colC  colB
  <chr> <dbl> <dbl> <dbl>
1 first     1     2    NA
2 second    3    NA     2

原理说明

unnest_wider()会自动识别列表列中每个元素的名称(比如你的colA/colB/colC),将这些名称作为新的列名,同时把对应的值填充到对应的位置;对于某一行没有的元素,会自动用NA填充,完全符合你想要的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:28:05