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

R语言将不等长三层嵌套列表转为指定结构数据框并导出CSV

R三层嵌套列表转结构化DataFrame实现方案

核心实现逻辑

针对三层不规则嵌套列表,不需要提前规整每个子向量长度,按两步处理即可:

  • 先把三层嵌套打平,提取所有最底层的字符向量为单层列表
  • 对每个字符向量按规则拆分字段,合并为数据框后导出为Excel兼容的CSV文件

可直接运行的Base R代码(无需安装额外包)

# 打平嵌套列表,提取所有底层原子向量,自动适配不规则嵌套结构
all_subvec <- unlist(temp_lst3, recursive = FALSE)

# 按规则生成三列数据
result <- data.frame(
  Name = sapply(all_subvec, function(x) x[1]),
  Title = sapply(all_subvec, function(x) x[2]),
  Others = sapply(all_subvec, function(x) paste(x[-c(1, 2)], collapse = ", ")),
  stringsAsFactors = FALSE
)

# 导出为Excel可直接打开的CSV,指定BOM编码避免Windows下中文乱码
write.csv(result, "result.csv", row.names = FALSE, fileEncoding = "UTF-8-BOM")

可选:tidyverse简洁写法

如果已安装tidyverse生态包,可以用purrr简化迭代逻辑,容错性更好:

library(purrr)
result <- map_dfr(
  unlist(temp_lst3, recursive = FALSE),
  ~data.frame(
    Name = .x[1],
    Title = .x[2],
    Others = paste(.x[-c(1,2)], collapse = ", "),
    stringsAsFactors = FALSE
  )
)

注意事项

  • 代码自动适配非规整数据:无论每个子向量长度是多少,只要前两位是Name、Title字段,后续内容都会自动拼接,子向量长度不足时对应位置自动返回NA,不会中断运行
  • 导出CSV时指定fileEncoding = "UTF-8-BOM"是为了兼容Windows系统自带的Excel,避免双击打开出现乱码,Mac系统下可去掉该参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:09:22