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

如何在R中批量读取Excel文件、转换指定列类型并合并?

批量处理Excel文件并合并的解决方案

以下是针对你需求的简便实现方法,全程无需逐个输入文件名:

1. 加载所需工具包

首先确保安装并加载readxl(读取Excel)和dplyr+purrr(批量处理与数据合并):

# 安装包(首次运行需要)
install.packages(c("readxl", "dplyr", "purrr"))

# 加载包
library(readxl)
library(dplyr)
library(purrr)

2. 获取所有Excel文件的路径

用list.files函数批量获取目标文件夹下的所有Excel文件路径,记得把"你的文件夹路径"替换成实际存放文件的文件夹路径(比如"D:/animal_data"):

# 获取所有xlsx格式文件的路径(如果是xls格式,把pattern改成"\\.xls$")
file_paths <- list.files(path = "你的文件夹路径", pattern = "\\.xlsx$", full.names = TRUE)
  • full.names = TRUE确保获取的是完整文件路径,避免后续读取出错。

3. 批量读取并处理每一个文件

用map函数遍历所有文件,读取后将指定的4列转换为字符型。把c("日期列1", "日期列2", "日期列3", "日期列4")替换成你实际需要处理的4列的列名:

# 批量处理文件
processed_data <- map(file_paths, function(file) {
  # 读取当前Excel文件
  df <- read_excel(file)
  # 将指定4列转换为字符型
  df <- df %>%
    mutate(across(c("日期列1", "日期列2", "日期列3", "日期列4"), as.character))
  # 返回处理后的数据集
  return(df)
})
  • 如果你的dplyr版本较旧(低于1.0.0),可以用mutate_at替代across:
    df <- df %>%
      mutate_at(vars("日期列1", "日期列2", "日期列3", "日期列4"), as.character)
    

4. 合并所有处理后的数据集

最后用bind_rows把所有处理好的数据框合并成一个大数据集:

# 合并所有数据
combined_data <- bind_rows(processed_data)

# 查看合并结果
head(combined_data)

这样就能一次性完成59个文件的读取、列类型转换与合并,无需逐个操作文件名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:05:38