如何在R语言中批量读取2010-2020年的yyyySummary.RDS文件
批量读取并合并RDS文件的R实现方案
以下是贴合你需求的具体实现步骤,完全匹配你给出的代码风格:
定义文件路径与生成目标文件名列表
先指定文件所在路径,再生成2010到2020年对应的完整文件名:filePath <- "/你的实际文件路径/" # 替换为文件存放的真实路径 years <- 2010:2020 file_names <- paste0(filePath, years, "Summary.RDS")批量读取所有RDS文件
使用lapply循环读取每个文件,得到一个数据框列表:df_list <- lapply(file_names, base::readRDS)合并为单个数据表
用base包的原生方法合并列表中的数据框:dt.summary <- do.call(rbind, df_list)
额外补充:适配非连续年份的场景
如果文件年份不连续,或者想自动匹配目录下所有符合命名规则的文件,可以用list.files匹配文件名模式:
file_names <- list.files( path = filePath, pattern = "^20[0-9]{2}Summary\\.RDS$", # 匹配以20开头的年份+Summary.RDS的文件 full.names = TRUE )
注意事项
- 确保所有RDS文件存储的数据结构(列名、数据类型)完全一致,否则合并时会出现错误
- 如果数据量较大,推荐使用
data.table包的rbindlist方法,合并效率更高:# install.packages("data.table") # library(data.table) # dt.summary <- rbindlist(df_list)
内容的提问来源于stack exchange,提问作者Miko
相关产品推荐
相关产品推荐

