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

R语言批量加载.Rds文件时如何去掉扩展名重命名数据框

解决方案

你之前的逻辑错误出在readRDS()传入了去掉扩展名的字符串,导致系统找不到对应文件。实际只需要在赋值变量名时用去掉后缀的字符串,读取文件时仍使用带.Rds后缀的原文件名即可。

修改后的循环写法(兼容你原有的代码逻辑)

temp = list.files(pattern = "*.Rds")
# 生成无后缀的变量名,正则添加转义和结尾匹配,避免误替换
var_names <- gsub("\\.Rds$", "", temp)
for (i in 1:length(temp)) {
  # 读取用原文件名temp[i],赋值用处理后的变量名var_names[i]
  assign(var_names[i], readRDS(temp[i]))
}

更简洁的无循环写法

如果不想显式写循环,可以用lapply实现相同效果,自动处理所有匹配的文件:

invisible(lapply(list.files(pattern = "\\.Rds$"), function(file) {
  assign(gsub("\\.Rds$", "", file), readRDS(file), envir = .GlobalEnv)
}))

说明:

  • \\.Rds$的正则写法更严谨:\\.匹配真实的点号(避免.作为正则通配符匹配任意字符),$限定只匹配文件名结尾的后缀,不会误删文件名中间的.Rds字符
  • invisible()用于隐藏lapply默认返回的无用列表,不会输出多余内容
  • envir = .GlobalEnv确保变量被赋值到全局工作环境,可直接调用

运行环境兼容说明

以上代码在你使用的 R 4.1.1、RStudio 1.4.1717、macOS Catalina 10.15.7 环境下可正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:54:00