【R语言 数据合并】批量读取数据文件合并为一个excel表格

需求分析:
在一个文件夹下里面有很多excel文件,它们字段都一样,这时候需要把他们合并为一个excel表格。

类型1:R语言合并同一个文件夹下的多个csv文件

rm(list = ls())
options(scipen = 200)

#########自定义函数################
readCSV <- function(dir_dta){
  file_list <- list.files(path=dir_dta,full.names=T)
  varSave_func <- function(x){
    table_x <- read.csv(file=x,sep=",",header = T)
  }
  a<-invisible(lapply(file_list,FUN=varSave_func))
  b<-as.data.frame(a[[1]])
  for (i in 2:length(a)){
    c<-rbind(b,a[[i]])
    b <- c
  }
  return(b)
}



##########调用函数
dir_dta <- "C:/Users/Administrator/Desktop/data"

result <-readCSV(dir_dta)

类型2:R语言合并同一个文件夹下的多个.xlsx文件

2.1、对于文件名没有规律的情况

# 设置工作空间
setwd('D:\\data file\\data2')
# 读取该工作空间下的所有文件名
filenames <- dir()
# 初始化数据框,用于后面的数据合并
data2 <- data.frame()
#通过循环完成数据合并
for (i in filenames){
  # 构造数据路径
  path <- paste0(getwd(),'\\',i)
  #res <- c(res,path)
  # 读取并合并数据
  data2 <- rbind(data2,read_excel(path = path))
}

2.2、对于文件名没有规律的情况,并且只读取某后缀的文件
(xls,csv,xlsx 后缀都存在,只读取xlsx)

# 设置工作空间
setwd('D:\\data file\\data3')
# 读取该工作空间下的所有文件名
filenames <- dir()
# 通过正则,获取所有xlsx结尾的文件名
filenames2 <- grep('\\.xlsx', filenames, value = TRUE)
# 初始化数据框,用于后面的数据合并
data3 <- data.frame()
#通过循环完成数据合并
for (i in filenames2){
# 构造数据路径
  path <- paste0(getwd(),'\\',i)
  #res <- c(res,path)
# 读取并合并数据
  data3 <- rbind(data3,read_excel(path = path))
}

你可能感兴趣的:(数据科学--R语言,r语言)