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

如何使用unnest_longer处理含字符与列表混合的tibble列?

解决混合类型列的unnest_longer报错问题

问题出在some_nested列同时包含字符类型和列表类型元素,unnest_longer无法处理这种混合类型的列。要解决这个问题,先把列内所有元素统一转为列表类型,再执行展开操作。

步骤1:统一列元素类型

用purrr::map遍历列,把非列表元素包裹成单元素列表,列表元素保持不变:

library(tibble)
library(tidyr)
library(purrr)

# 你的原始数据框
df <- tibble(none_nested = c("a", "b", "c"), 
             all_nested = c(list(list("a", "b")), list(list("a", "b")), list(list("a", "b"))), 
             some_nested = c("a", "b", list(list("a", "b")))
             )

# 统一some_nested列的类型为列表
df$some_nested <- map(df$some_nested, ~ if (is.list(.x)) .x else list(.x))

步骤2:执行unnest_longer

现在列内所有元素都是列表类型,就可以正常展开了:

df_unnested <- unnest_longer(df, some_nested)

验证结果

展开后的tibble如下:

# A tibble: 4 × 3
  none_nested all_nested some_nested
  <chr>       <list>     <chr>      
1 a           <list>     a          
2 b           <list>     b          
3 c           <list>     a          
4 c           <list>     b          

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:57:10