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

R语言如何将含多层嵌套列表行的表格转为多行列data.frame

R语言嵌套列表结构表转换方案

依赖包引入

需使用tidyverse系列工具完成转换,执行以下代码加载依赖:

library(tidyverse)

完整转换代码

# 原始数据构造(示例代码)
l1 <- list(list(list(item=list(category="item category",name="item name"))))
l2 <- list(
  list(
    list(
      item=list(category="item category1",name="item name1"),
      item=list(category="item category2",name="item name2")
      )))
source <- tribble(
  ~order, ~tablePart,
  1,l1,
  2,l2
  )

# 核心转换逻辑
result <- source %>%
  # 按行独立处理,避免跨行干扰
  rowwise() %>%
  mutate(
    items = list(
      # 压平3层嵌套列表,直接获取所有item对象
      flatten_depth(tablePart, 3) %>%
        # 遍历提取每个item的category、name字段,拼接为数据框
        map_dfr(~ tibble(category = .x$category, name = .x$name))
    )
  ) %>%
  # 展开列表列,转为一行对应一个item的结构
  unnest(items) %>%
  # 保留需要的列,调整顺序
  select(order, category, name)

输出验证

执行后得到的result结构与需求完全一致:

print(result)
# A tibble: 3 × 3
  order category       name       
  <dbl> <chr>          <chr>      
1     1 item category  item name  
2     2 item category1 item name1 
3     2 item category2 item name2 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:06:03