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

R语言如何批量将model开头的模型对象传入map(tidy)处理

批量提取全局环境模型构建列表的实现方案

不需要手动录入200个模型名,也不需要用复杂的元编程语法,用R自带的基础环境操作函数就能快速实现需求:

通用实现方法

通过正则匹配全局环境内符合命名规则的对象,再批量取值生成列表即可:

library(tidyverse)

# 匹配全局环境中所有命名为「model+数字」格式的对象
model_names <- ls(
  pattern = "^model\\d+$", 
  envir = .GlobalEnv
)
# 批量提取对应对象,生成*带原对象名标识*的模型列表
model_list <- mget(model_names, envir = .GlobalEnv)

# 直接传入map批量整理结果即可
model_list %>% 
  map(tidy)

关键逻辑说明

  • ls()的pattern参数支持正则规则匹配:^model\\d+$代表匹配以model开头、后续全为数字的对象,刚好对应你model1到model200的命名规则,不会误捞其他名称带model的无关对象。
  • mget()会根据传入的对象名字符向量,批量从指定环境中取出对应对象,返回的列表默认以原对象名作为列表元素名,后续整理结果时可以直接对应到具体模型,比手动构建的无名称列表实用性更强。

零误匹配备选方案

如果你确定模型编号是从1到200的连续序列,可以直接生成固定名称向量取对象,完全避免正则匹配的误判问题:

# 直接生成model1到model200的标准名称向量
model_names <- paste0("model", 1:200)
model_list <- mget(model_names, envir = .GlobalEnv)

实操建议:后续做批量建模时,可以直接把模型输出存入列表,不需要把上百个模型散放在全局环境中,能省去后续重新聚合对象的步骤,代码管理也更清晰。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:24:24