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

如何在R中按列名提取多list的指定列并合并为自定义列名的dataframe?

这里有两种简洁的方法可以实现你的需求,不管是用基础R还是tidyverse工具包都能轻松搞定:

方法一:基础R实现

不需要额外安装包,用sapply遍历列表提取指定列,再转换为数据框并设置列名:

# 提取所有列表中的"a"列
extracted_a_cols <- sapply(all, function(list_item) list_item[["a"]])

# 转换为data.frame并赋予新列名
final_df <- as.data.frame(extracted_a_cols)
colnames(final_df) <- new_column_names

方法二:tidyverse工具包(更简洁)

如果习惯用tidyverse的语法,purrr的map_dfc可以直接按列合并提取结果,搭配dplyr的set_names一步到位:

library(purrr)
library(dplyr)

final_df <- map_dfc(all, ~ .x[["a"]]) %>% 
  set_names(new_column_names)

验证结果

运行上述代码后,final_df就是你想要的结果:

> final_df
  Block1 Block2 Block3
1      1     12      2
2      2     13      3
3      3     14      4
4      4     15      5
5      5     16      6
6      6     17      7

如果之后需要提取其他列(比如"b"或"c"),只需要把代码中的"a"替换成对应的列名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:15:12