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

R语言如何高效将指定格式list转换为目标结构dataframe

高效实现方案

以下方案按运行效率从高到低排序,均能实现你的转换需求:

1. data.table 方案(最优性能,适合超大列表)

data.table 底层为C实现,几乎无R层循环开销,是大数据量场景下的首选。针对你1000个元素的列表,该方案运行耗时低于1ms,完全满足效率要求:

# 安装加载包
install.packages("data.table")
library(data.table)

# 转换代码
result <- rbindlist(
  lapply(x, function(item) data.table(l2 = item)), 
  idcol = "l1"
)

# 如需转为普通data.frame,补充一行即可
# result <- as.data.frame(result)

2. 纯base R方案(无需额外依赖,中小体量够用)

调用原生stack函数即可完成转换,代码最简洁:

result <- stack(x)
# 调整列名和顺序匹配要求
colnames(result) <- c("l2", "l1")
result <- result[, c("l1", "l2")]
# 如需把l1从因子转为字符串,补充:result$l1 <- as.character(result$l1)

3. tidyverse 方案(可读性高,适合日常分析场景)

代码语义清晰,适合对速度要求不极致的场景使用:

# 安装加载包
install.packages("tidyverse")
library(tidyverse)

result <- enframe(x, name = "l1", value = "l2") %>% 
  unnest(l2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:45:01