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

如何在R中遍历多子目录读取指定的cats.csv文件

解决多子文件夹下CSV文件读取问题

第一步:修正文件路径获取逻辑

你可以跳过先遍历子文件夹的步骤,直接递归查找所有cats.csv文件,这样更简洁且不易出错:

parent_folder <- "你的父文件夹路径"
# 精确匹配文件名,避免误抓类似cats1.csv的文件
cat_files <- list.files(path = parent_folder, pattern = "^cats\\.csv$", full.names = TRUE, recursive = TRUE)

第二步:读取所有CSV文件

基础包实现(无需额外安装包)

# 读取所有文件,得到数据框列表
all_cats <- lapply(cat_files, function(path) {
  # 可选:指定编码避免乱码,根据实际情况调整
  read.csv(path, encoding = "UTF-8")
})

# 若需要合并成单个大数据框
all_cats_combined <- do.call(rbind, all_cats)

tidyverse工具链实现(更简洁的合并)

library(purrr)
library(dplyr)

# 读取并直接合并为单个数据框
all_cats_combined <- map_dfr(cat_files, ~read.csv(.x, encoding = "UTF-8"))

原代码可能失败的原因排查

  1. 路径问题:dir(sub_folders, ...)传入多路径时,可能混入空值(部分子文件夹无cats.csv),可先过滤:
    cat_files <- cat_files[cat_files != ""]
    
  2. 编码问题:CSV文件编码与R默认编码不匹配,需在read.csv中指定encoding参数。
  3. 文件匹配问题:原pattern = "cats"会匹配所有含cats的文件名,建议用精确匹配^cats\\.csv$。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:00:59