R语言从嵌套列表提取信息生成拟合指标汇总表的问题咨询
R嵌套模型拟合结果提取实现方案
实现逻辑
你的嵌套列表第一层为模型类型,第二层为数据集,第三层为拟合指标。我们只需要按数据集遍历,对每个数据集提取所有模型的对应指标,按列合并即可得到目标结构的汇总表。
基础R实现(无需安装额外包)
# 提取所有数据集的名称 dataset_names <- names(CombinedTest[[1]]) # 初始化结果存储列表 result_tables <- list() # 遍历每个数据集生成汇总表 for (current_dataset in dataset_names) { # 提取当前数据集下所有模型的拟合指标向量 metrics_list <- lapply(CombinedTest, function(model_result) { model_result[[current_dataset]] }) # 合并为数据框,行对应指标,列对应模型 result_tables[[current_dataset]] <- as.data.frame(do.call(cbind, metrics_list)) }
调用示例
要查看数据集Summarydata1的汇总表,直接运行:
View(result_tables[["Summarydata1"]])
Tidyverse实现(代码更简洁)
如果你已经安装了tidyverse系列包,可以用purrr更高效地完成操作:
library(purrr) library(tibble) # 批量生成所有数据集的汇总表 result_tables <- map(names(CombinedTest[[1]]), function(ds) { # 按列合并所有模型的指标,新增指标名列 map_dfc(CombinedTest, ~.x[[ds]]) |> rownames_to_column("fit_metric") }) |> # 给结果列表命名,和数据集名称对应 set_names(names(CombinedTest[[1]]))
内容的提问来源于stack exchange,提问作者Josh Blake
相关产品推荐
相关产品推荐

