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

如何在R中批量读取多个RDS文件并保留文件名?

批量加载指定格式的RDS文件到全局环境

方法一:使用for循环实现

先匹配目标目录下符合命名规则的RDS文件,再循环读取并赋值到全局环境:

# 替换为你的RDS文件存放目录
target_dir <- "~/your_rds_directory"

# 获取所有符合命名格式的RDS文件(含完整路径)
rds_files <- list.files(
  path = target_dir,
  pattern = "^version_\\d+_\\w+\\.RDS$",
  full.names = TRUE
)

# 循环加载每个文件
for (file_path in rds_files) {
  # 提取不带后缀的文件名作为对象名
  obj_name <- tools::file_path_sans_ext(basename(file_path))
  # 将读取的RDS对象赋值到全局环境
  assign(obj_name, readRDS(file_path), envir = .GlobalEnv)
}

方法二:用lapply + list2env简化操作

这种方式更简洁,无需手动写循环:

target_dir <- "~/your_rds_directory"
rds_files <- list.files(
  path = target_dir,
  pattern = "^version_\\d+_\\w+\\.RDS$",
  full.names = TRUE
)

# 批量读取所有文件到列表,设置列表元素名为对应文件名
rds_objects <- lapply(rds_files, readRDS)
names(rds_objects) <- tools::file_path_sans_ext(basename(rds_files))

# 将列表中的对象批量导入全局环境
list2env(rds_objects, envir = .GlobalEnv)

注意事项

  • 务必将target_dir替换为你的实际文件路径
  • 正则表达式^version_\\d+_\\w+\\.RDS$精准匹配你的命名格式,若文件名有特殊变体可适当调整正则
  • 执行前可先打印rds_files确认仅包含需要加载的文件,避免误加载
  • 若文件体积较大,批量加载会占用较多内存,注意监控内存使用情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:45:23